我用for循环在MySQL数据库中进行一些插入。
我对自动增量有问题,因为第一次插入后,我获得了com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException。
这里的代码:
for (int i=0; i<numKeys; i++) {
try {
stm1 = this.db_connection.prepareStatement("INSERT INTO mytable (Cod, Prop, Field, Value) VALUES (?,?,?,?)");
stm1.setInt(1, Statement.RETURN_GENERATED_KEYS);
stm1.setInt(2, 0);
stm1.setString(3, aname);
stm1.setString(4, avalue);
stm1.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
鳕鱼是一个自动递增字段。
最佳答案
如果它是一个自动递增的字段,则没有理由将其作为参数传递,只是不要将其包括在Insert语句中。
stm1 = this.db_connection.prepareStatement("INSERT INTO mytable (Prop, Field, Value) VALUES (?,?,?)");
并在下面删除适当的setInt方法。