一、问题描述

二、原因

每次插入数据时,自增的主键每次都会加1(序列值也加1),但是当指定主键值插入数据时序列值不会变,导致下次添加时主键冲突

三、解决方法

1.查询当前最大主键值

select max("主键名") from "表名";

如:

select max("user_id") from "sys_user";

2.查询下一个序列值

select nextval('表名_主键_seq');

如:

select nextval('sys_user_user_id_seq');

3.设置序列值

select setval('"表名_主键_seq"', (select max("主键") from "表名"));

如:

select setval('"sys_user_user_id_seq"', (select max("user_id") from "sys_user"));

推荐链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: