1,创建一个序列

create sequence qh_test_quence 
increment  by 1  --步长
minvalue 1     --最小值
maxvalue 99999 --最大值
start 1  --起始值
cache 1  --每次生成几个值
cycle;  --到达最大值或最小值循环(不加默认不循环)

2.查看当前序列的值

select * from qh_test_quence;

3.删除序列

drop sequence qh_test_quence;

4.使用序列
例如将产品信息表字段的一部分使用序列

insert into product_info values('测试产品','产品'||nextval('qh_test_quence')||'','20220710') returning *;

最后的 returning * 用于显示刚插入的数据,也可以去掉。
5.查询孤儿序列(没有字段绑定的,也没有被使用,在系统中占用资源,如果序列被绑定到一个serial类型的字段,删除该表时,序列会被自动删除,如果时int类型,则不会被删除,所以在大型数据库系统中应注意过多孤儿序列的产生)

SELECT ns.nspname AS schema_name, seq.relname AS seq_name
FROM pg_class AS seq
JOIN pg_namespace ns ON (seq.relnamespace=ns.oid)
WHERE seq.relkind = 'S'
  AND NOT EXISTS (SELECT * FROM pg_depend WHERE objid=seq.oid AND deptype='a')
ORDER BY seq.relname;
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐