Cause: org.postgresql.util.PSQLException: 错误: 重复键违反唯一约束

2021-11-08 13:45:14 浏览数 (2)

错误背景

SpringBoot 项目使用 Mybatis 框架进行开发,相应的表已经配置了主键自增。

代码语言:javascript复制
@TableId(type = IdType.AUTO)
private Integer id;

数据库中的字段 id 值也设置了主键自增。

错误原因

出现这个错误的原因是因为当前表的 id 字段的序列值被改了,通过 Navicat 工具可以查看:

可以查看当前值为 209,这是正常的,出现错误的原因就是因为这个当前值被改了,可能改成了 1

解决办法

执行一条命令,将序列的当前最大值 1

代码语言:javascript复制
select setval('test_id_seq',max(id)   1,true) from test

其中 test 为表名,test_id_seq 为序列名。

0 人点赞