我正在使用Java中的MySQL库执行查询。
在我的数据库结构中,有一列称为cod_nfs
(主键,不是null和auto_increment)。
通常在每个插入查询中,我都将值设置为null
,并且在执行查询后,它会增加最后一个id,但是在java中这样做会给我例外。
那是代码:
String SQL = "INSERT INTO infosetdata(cod_nfs,savingDate_nfs,attributeValue_nfs,codInfoSet_nfs,codColumn_nfs,codRow_nfs) VALUES (null,'2019-01-08',?,?,?,?)";
for( String value : values ) {
ps = conn.prepareStatement(SQL);
ps.setString(1, value);
ps.setInt(2, dataId);
ps.setInt(3, y);
ps.setInt(4, x);
ps.executeUpdate();
y++;
}
如何使用自动增量ID执行查询?
最佳答案
您不应该为cod_nfs设置值,因为它已经设置为自动增量。请尝试以下方法:
String SQL = "INSERT INTO infosetdata(savingDate_nfs,attributeValue_nfs,codInfoSet_nfs,codColumn_nfs,codRow_nfs) VALUES ('2019-01-08',?,?,?,?)
如果出现错误,请确保将cod_nfs列设置为自动增量。尝试运行:
ALTER TABLE infosetdata MODIFY cod_nfs INT(11) NOT NULL AUTO_INCREMENT
感谢@Mark Rotteveel在评论中为该问题提供帮助。