从品牌网站建设到网络营销策划,从策略到执行的一站式服务
怎么在postgresql中对序列的起始值进行重置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
-- 序列重置到1000 alter sequence sequence_name restart with 1000 -- 验证 SELECT nextval('sequence_name');
补充:postgresql重置序列和自增主键
数据表中插入了几条测试数据,后又手动删除,导致后面插入数据的时候报主键冲突:
ERROR: duplicate key value violates unique constraint "tableName_pkey" DETAIL: Key (id)=(1) already exists.
即使采用INSERT IGNORE的方式或者REPLACE INTO的方式还是报错,所以就想着重置自增序列和主键。
2.1 方法一
(1)重置序列起始值为1
alter sequence xxx_id_seq restart with 1
(2)查看当前序列
SELECT nextval('xxx_id_seq ');
(3)重置自增主键
TRUNCATE tableName RESTART IDENTITY;
2.2 方法二
(1)清除所有的记录
TRUNCATE tablename questions CASCADE;
(2)清除所有的记录,并且索引号从0开始
TRUNCATE tablename questions RESTART IDENTITY CASCADE;
2.3 方法三
也有可能是自增主键和序列不一致导致的,所以也可以不用重置序列起始值和主键,采取把序列号改成和当前较大主键一致的方式:
select setval('xxx_id_seq', max(id)) from tableName;
看完上述内容,你们掌握怎么在postgresql中对序列的起始值进行重置的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图