4

プロンプト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およびJava1.5.0_24でMySQLCommunityServer5.1.31を使用しています。

4

1 に答える 1

3

INSERT IGNOREこれらを完全に抑制するために使用できます。

于 2010-08-28T20:37:06.880 に答える