时间:2021-05-23
我就废话不多说了,大家还是直接看代码吧~
-- 序列重置到1000alter 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;以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
excel等差数列填充步骤: 1、首先输入起始值,然后点击填充按钮; 2、在下拉列表中,找到序列,点击打开; 3、接着选择序列产生在列; 4、在右侧,选
异步操作动态添加节点,导致在代码中给添加的节点全局绑定事件或者获取元素无效,上代码:$(function(){varIP='...';//页面中的默认编号起始值
1、range函数range(起始值,终点值,间隔)终点值不一定是最后一个取到的值得到的是range类的对象,最后用list转换为【】,In[4]:list(r
在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍mysql自增ID的起始值修改与设置方法。
1.delete不能使自动编号返回为起始值。但是truncate能使自动增长的列的值返回为默认的种子。 2.truncate只能一次清空,不能按条件删除。