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;