【问题标题】:Auto_Increment with PreparedStatement带有 PreparedStatement 的 Auto_Increment
【发布时间】:2012-12-02 18:55:16
【问题描述】:

我有一段 Java 代码可以将数据插入到我的数据库中。

有人建议我输入 AUTO_INCREMENT 并给每一行一个唯一的编号。

但它现在给了我一个错误:

java.sql.SQLException:不正确的整数值:列的“DEFAULT” 第 1 行的“用户 ID”

我认为这是因为它将 AUTO_INCREMENT 值转换为字符串?

我该如何解决这个问题,因为创建唯一编号的不是我的 java 程序,而是数据库本身。

pst.setString(1, "DEFAULT");

String query_to_update = "INSERT INTO `evidence_db`.`mcases` ("
                        + "`PID`,"
                        + "`Name`) "
                        + "VALUES (?,?);";

【问题讨论】:

  • 自动增量应该是一个数字。
  • 您不应尝试在此列中插入任何内容。

标签: java mysql auto-increment


【解决方案1】:
pst.setInt(1, 0);

上面是我需要的线。感谢所有尝试提供帮助的人。

【讨论】:

  • 这仍然是错误的,假设参数 1 对应于您的 auto_increment 字段。要使自动增量生效,您不能在列列表中为其提供值。
  • 嗨@Perception。它似乎工作正常?如果我没有为它定义一个值,就会发生错误。
  • 您收到错误,因为您在插入列表中包含了 auto_increment 列。删除它,数据库将负责正确设置其值。
  • 您执行了String query_to_update = "INSERT INTO evidence_db.mcases (Name) VALUES (?)"; ... ; pst.setString(1, "<Name here>"); 并得到完全相同的错误
  • @AdamHinx 向我们展示您更新的具体内容。这可能有助于解决问题。
猜你喜欢
  • 2011-05-12
  • 2011-12-05
  • 1970-01-01
  • 2012-10-08
  • 2013-05-02
  • 1970-01-01
  • 2021-05-17
  • 2014-08-27
相关资源
最近更新 更多