当表中的数据已经存在时,在稍后的点添加@GeneratedValue



一个有ID但对应表中的数据是手动添加的实体,因此从未添加@GeneratedValue注释。现在我需要通过代码在这个表中创建记录,并希望我的ID自动递增。关于添加@Id @GeneratedValue(strategy = GenerationType.AUTO) Integer id;我得到的例外是:

java.sql.SQLException: Field 'id' doesn't have a default value

有没有办法做到这一点?

您需要更改数据库中的列定义,以添加默认值"AUTO_INCREMENT";。

对于Mysql:

ALTER TABLE yourtable MODIFY COLUMN ID INT NOT NULL AUTO_INCREMENT; 

我认为您还应该将表的下一个AUTO_INCREMENT值设置为id+1:的实际最大值

ALTER TABLE yourtable AUTO_INCREMENT = new_value;

最新更新