2010-08-28 91 views
3

我有一个INSERT INTO ... ON DUPLICATE KEY UPDATE ...语句执行罚款(但有警告)在mysql>提示:我可以在JDBC中忽略或取消警告吗?

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.31与MySQL连接器5.1.8和Java 1.5.0_24。

回答

1

您可以使用INSERT IGNORE来完全抑制这些。

+0

(:That works。有趣的,我以为我曾尝试过..谢谢! – 2010-08-28 21:00:49

相关问题