2010-08-28 3 views
3

У меня есть INSERT INTO ... ON DUPLICATE KEY UPDATE ... заявление, которое выполняется в порядке (но с предупреждениями) в mysql> строке:Можно ли игнорировать или пресекать предупреждения в JDBC для 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 Community Server 5.1.31 с соединителем MySQL 5.1.8 и Java 1.5.0_24.

ответ

1

Вы можете использовать INSERT IGNORE, чтобы полностью их устранить.

+0

(: Это работает. Интересно, я думал, что попробовал это. Спасибо! –

Смежные вопросы