我正在使用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在评论中为该问题提供帮助。

10-02 02:38
查看更多