nextval() 是一个返回序列下一值的系统函数。
nextval() 在 PostgreSQL 6.1 中被添加。
用法
nextval (regclass) →bigint
由 nextval() 返回的每个值都是原子性返回的,即每次调用都会返回一个不同的值,即使是在不同的会话中执行。
虽然可以直接执行 nextval(),但通常它被用作列的默认值。
可以使用 currval() 函数在不推进序列的情况下检索序列的当前值。可以使用 setval() 来显式设置它。
变更历史
- PostgreSQL 6.1
- 添加 (提交 e8647c45)
示例
nextval() 的基本用法示例
postgres=# CREATE SEQUENCE foo_seq; CREATE SEQUENCE postgres=# SELECT nextval('foo_seq'); nextval --------- 1 (1 row)
使用 nextval() 为表中的列生成默认值
postgres=# CREATE TABLE foo (id INT DEFAULT nextval('foo_seq')); CREATE TABLE postgres=# INSERT INTO foo (id) VALUES (DEFAULT); INSERT 0 1 postgres=# SELECT * FROM foo; id ---- 2 (1 row)
参考资料
- PostgreSQL 文档: 序列函数
有用链接
- 错误:nextval:序列达到最大值 - 2022 年 9 月 Hans-Jürgen Schönig / CyberTec 的博客文章
