错误背景
SpringBoot
项目使用 Mybatis
框架进行开发,相应的表已经配置了主键自增。
@TableId(type = IdType.AUTO)
private Integer id;
数据库中的字段 id
值也设置了主键自增。
错误原因
出现这个错误的原因是因为当前表的 id
字段的序列值被改了,通过 Navicat
工具可以查看:
可以查看当前值为 209,这是正常的,出现错误的原因就是因为这个当前值被改了,可能改成了 1
。
解决办法
执行一条命令,将序列的当前最大值 1
;
select setval('test_id_seq',max(id) 1,true) from test
其中 test
为表名,test_id_seq
为序列名。