常用操作
- 查询所有自增序列
SELECT “c”.“relname” FROM “pg_class” “c” WHERE “c”.“relkind” = ‘S’; - pgSQL导表或者创建表的时候,检查是否存在自增字段序列,然后创建
CREATE SEQUENCE IF NOT EXISTS tablename_id_seq; - 创建自增序列
CREATE SEQUENCE tablename_id_seq
CREATE SEQUENCE tablename_id_seq START 10; - 删除某个自增序列
DROP SEQUENCE tablename_id_seq - 更新某个自增序列
alter sequence tablename_id_seq restart with 100 - 查询下一个序列
select nextval('tablename_id_seq '); - 使用自增序列
nextval(‘tablename_id_seq’::regclass)
遇到的错误
- 运行sql脚本的时候数据和结构出现 relation “XXX_id_seq” does not exist
在postgresql表中建立了自增字段,id定义为Serial 类型,当执行完成建表语句后,其字段便成:
“id” int4 NOT NULL DEFAULT nextval(‘performance_id_seq’::regclass)
这种形式,但是导出sql脚本时候直接定义成这种形式,postgresql不能识别,想必是postgresql的一个小bug吧,因此自增的id,在建表的时候应该定义为: “id” serial
或者
1.新建查询,执行CREATE SEQUENCE IF NOT EXISTS XXXX_id_seq;
2.alter sequence tablename_id_seq restart with 100
设置起始的自增数目,
3.执行再次执行sql文件 - 待补充
版权声明:参考了CSDN博主「手心守贝」的原创文章
原文链接:https://blog.csdn.net/qq_35771567/article/details/103616842