Cause: org.postgresql.util.PSQLException: 错误: 重复键违反唯一约束
错误背景
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
为序列名。
- 错误背景
- 错误原因
- 解决办法