当在本地将not null列更新为null值时,它将抛出一个错误,但是当在aws rds示例上运行时,它将正常并报告一个警告。
例如,针对aws rds:
2018-05-31 15:41:23,066 [][][localhost] WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper:232 - SQL Warning Code: 1048, SQLState: null
2018-05-31 15:41:23,068 [][][localhost] WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper:233 - Column 'xxxxx' cannot be null
和我当地的人作对:
2018-05-31 15:02:07,023 [][][localhost] WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper:144 - SQL Error: 1048, SQLState: 23000
2018-05-31 15:02:07,024 [][][localhost] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper:146 - Column 'xxxxx' cannot be null
2018-05-31 15:02:07,029 [][][localhost] INFO org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl:208 - HHH000010: On release of batch it still contained JDBC statements
2018-05-31 15:02:07,035 [][][localhost] WARN net.sourceforge.stripes.exception.DefaultExceptionHandler:90 - Unhandled exception caught by the Stripes default exception handler.
org.hibernate.exception.ConstraintViolationException: could not execute statement
从我的阅读中,sql\u mode属性处理这个问题,但是更改值没有任何效果。将my local设置为与remote相同的值不会再现以下行为:
show variables where Variable_name like '%sql_mode%';
'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'
什么设置允许我的aws rds示例在本地出错时显示警告?
其他信息:
列定义: xx
int(11)无符号非空
存储引擎:innodb
本地版本:5.6.33-log和5.6.27(在两个不同的区域观察到该问题)
远程版本:5.6.39-log
1条答案
按热度按时间ctehm74n1#
您可以将sql\ U模式设置为“忽略”,也就是说,不容易做到这一点。
或者,您可以使用“插入忽略”以忽略错误/警告,如下所示: