2010-08-28 86 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

相關問題