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 文档: 序列函数
有用链接
- ERROR: nextval: 达到序列的最大值 - 2022 年 9 月 Hans-Jürgen Schönig / CyberTec 的博客文章