代码之家  ›  专栏  ›  技术社区  ›  Josef Pfleger

我可以在JDBC for MySQL中忽略或取消警告吗?

  •  4
  • Josef Pfleger  · 技术社区  · 14 年前

    我有一个 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.31,MySQL连接器5.1.8和Java1.5.0Sy24。

    1 回复  |  直到 13 年前
        1
  •  2
  •   Joshua Martell    14 年前

    你可以使用 INSERT IGNORE 完全压制这些。

    推荐文章