PostgreSQL Sequence序列的使用详解
PostgreSQL是一种关系型数据库,和Oracle、MySQL一样被广泛使用。平时工作主要使用的是PostgreSQL,所以有必要对其相关知识做一下总结和掌握,先总结下序列。
一、 Sequence序列
Sequence是一种自动增加的数字序列,一般作为行或者表的唯一标识,用作代理主键。
1、Sequence的创建
例子:创建一个seq_commodity,最小值为1,最大值为9223372036854775807,从1开始,增量的步长为1,缓存为1的循环排序Sequence。
SQL语句如下:
CREATE SEQUENCE seq_commodity
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1
CYCLE; // 循环,表示到最大值后从头开始
2、查找Sequence中的值
1SELECT nextval('seq_commodity');
这里nextval表示下一个值
3、修改 Sequence
用alter sequence来修改,除了start以外的所有sequence参数都可以被修改,
alter sequence 的例子 (SQL语句)
ALTER SEQUENCE seq_commodity
INCREMENT 10
MAXVALUE 10000
CYCLE
NOCACHE ;
当然如果想要修改start的值,可以先用 drop sequence删掉,然后再重新创建。
4、删除Drop Sequence
1DROP SEQUENCE seq_commodity;
5、Sequence分配策略
调用select nextval(seq_ commodity);返回下一个序列号后,系统优先给用户分配一个序号,接着系统的次Sequence立刻加上设置的步长(increment 1),不论此序号用户是否使用;
调用select currval(seq_ commodity);返回当前的序列号,该序列号只要没有被使用,就不会变化,如果当前请求一直使用,那么不会再分配给其他的请求,因为该序列号已经分配给当前请求。
补充:PostgreSQL 获取 SEQUENCE 列表
我就废话不多说了,大家还是直接看代码吧~
1SELECT "c"."relname" FROM "pg_class" "c" WHERE "c"."relkind" = 'S';
结束~
文章来源:脚本之家
来源地址:https://www.jb51.net/article/205227.htm
1. 本站所有下载资源均不包含技术支持和安装服务!需要讨论请进群!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到审核区发布,分享有KR奖励和额外收入!
4. 如有链接无法下载、失效或广告,请联系管理员处理!
5. 本站无法保证资源或破解时效性,如某些授权码过期等问题,恕不在修复范围内。
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!故不接受任何形式的退款,如确认资源确有问题的,会补给相应KR以供再次购买。
7. 53Kr源码暂未发现后门代码,但无法保证100%安全,推荐检测方法:上传到 https://www.virustotal.com/在线查看是否有恶意代码以及其他有后门嫌疑的代码。
8. 在本站下载的源码我还是不建议正式使用,有特别喜欢的可以去程序官方购买。
53kr资源站仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。
53kr资源分享 » PostgreSQL Sequence序列的使用详解