我可以忽略或禁止JDBC中的MySQL警告吗?

时间:2010-08-28 18:47:38

标签: mysql jdbc mysql-error-1364

我有INSERT INTO ... ON DUPLICATE KEY UPDATE ...语句在mysql>提示符下执行正常(但有警告):

mysql> INSERT INTO ... ON DUPLICATE KEY UPDATE ... ;
Query OK, 2 rows affected, 2 warnings (0.00 sec)
Warning (Code 1364): Field 'x' doesn't have a default value

但是,当我尝试通过JDBC执行相同的语句时,警告显示为SQLException并且没有更新行:

java.sql.SQLException: Field 'x' doesn't have a default value
  at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
  at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3536)
  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3468)  
  at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1957)
  at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2107)
  at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2648)
  at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2086)
  at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1365)

是否有JDBC或mysql连接器设置或命令忽略或禁止这些警告?

我正在使用带有MySQL连接器5.1.8和Java 1.5.0_24的MySQL社区服务器5.1.31。

1 个答案:

答案 0 :(得分:2)

您可以使用INSERT IGNORE完全压制这些内容。