PostgreSQL创建自增序列、查询序列及使用序列代码示例
更新时间:2023年11月08日 10:01:12 作者:码农阿福
数据库中主键的生成一般是通过序列来生成,下面这篇文章主要给大家介绍了关于PostgreSQL创建自增序列、查询序列及使用序列的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
序列函数:
函数 | 返回类型 | 描述 |
nextval(regclass) | bigint | 递增序列对象到它的下一个数值并且返回该值。这个动作是自动完成的。即使多个会话并发运行nextval,每个进程也会安全地收到一个唯一的序列值。 |
currval(regclass) | bigint | 在当前会话中返回最近一次nextval抓到的该序列的数值。(如果在本会话中从未在该序列上调用过 nextval,那么会报告一个错误。)请注意因为此函数返回一个会话范围的数值,而且也能给出一个可预计的结果,因此可以用于判断其它会话是否执行过nextval。 |
lastval() | bigint | 在当前会话中返回最近一次nextval抓到的该序列的数值。(如果在本会话中从未在该序列上调用过 nextval,那么会报告一个错误。)请注意因为此函数返回一 返回当前会话里最近一次nextval返回的数值。这个函数等效于currval,只是它不用序列名为参数,它抓取当前会话里面最近一次nextval使用的序列。如果当前会话还没有调用过nextval,那么调用lastval将会报错。 |
setval(regclass, bigint) | bigint | 重置序列对象的计数器数值。设置序列的last_value字段为指定数值并且将其is_called字段设置为true,表示下一次nextval将在返回数值之前递增该序列。 |
setval(regclass, bigint, boolean) | bigint | 重置序列对象的计数器数值。功能等同于上面的setval函数,只是is_called可以设置为true或false。如果将其设置为false,那么下一次nextval将返回该数值,随后的nextval才开始递增该序列。 |
CREATE SEQUENCE 创建序列
CREATE SEQUENCE "user_id_seq" START WITH 1 --开始值 INCREMENT BY 1 --每次新增数 NO MINVALUE --无最小值 NO MAXVALUE --无最大值 CACHE 1; --缓存序列数量
ALTER SEQUENCE 修改序列:
ALTER SEQUENCE "user_id_seq" START WITH 1 --开始值 INCREMENT BY 1 --每次新增数 NO MINVALUE --无最小值 NO MAXVALUE --无最大值 CACHE 1; --缓存序列数量
nextval查询下一个序列值:
SELECT nextval('user_info_id_seq')
currval查询当前序列值:
SELECT currval('user_info_id_seq')
批量设置表自增序列值最大值:
SELECT 'SELECT SETVAL(''' || SUBSTRING ( sequence_name FROM '^(.*)[_]id_seq$' ) || '_id_seq'', (SELECT (MAX(id) + 1) FROM ' || SUBSTRING ( sequence_name FROM '^(.*)[_]id_seq$' ) || ') , true);' AS SQL FROM information_schema.sequences
总结
到此这篇关于PostgreSQL创建自增序列、查询序列及使用序列的文章就介绍到这了,更多相关pgsql创建自增序列查询序列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用python-slim镜像遇到无法使用PostgreSQL的问题及解决方法
这篇文章主要介绍了使用python-slim镜像遇到无法使用PostgreSQL的问题及解决方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧2024-08-08PostgreSQL pg_filenode.map文件介绍
这篇文章主要介绍了PostgreSQL误删pg_filenode.map怎么办,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧2022-09-09Postgresql的pl/pgql使用操作--将多条执行语句作为一个事务
这篇文章主要介绍了Postgresql的pl/pgql使用操作--将多条执行语句作为一个事务,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-01-01
最新评论