PostgreSQL lastval() 函数使用指南

PostgreSQL lastval() 函数返回当前会话中最近一次 nextval() 函数的调用结果。如果当前会话没有调用过 nextval() 函数,将会发生一个错误。

lastval() 函数与 currval() 函数类似,除了 lastval() 函数不需要指定序列名称。

lastval() 语法

这里是 PostgreSQL lastval() 函数的语法:

lastval() -> BIGINT

参数

PostgreSQL lastval() 函数不需要任何参数。

返回值

PostgreSQL lastval() 函数返回当前会话中最近一次 nextval() 函数的调用结果。

如果在当前会话中没有调用过 nextval() 函数,那将会发生一个错误。

lastval() 示例

首先,让我们使用 CREATE SEQUENCE 语句创建一个简单的序列生成器 my_sequence

DROP SEQUENCE IF EXISTS my_sequence;
CREATE SEQUENCE my_sequence START 100;

这里,我们创建了一个名称为 my_sequence 序列生成器,它的起始值是 100。

然后,让我们使用 PostgreSQL nextval() 函数将序列 my_sequence 前进一位并返回最新的值:

SELECT nextval('my_sequence');
 nextval
---------
     100

让我们使用 lastval() 函数返回序列 my_sequence 的当前值:

SELECT lastval();
 lastval
---------
     100

这里,lastval() 函数的返回值和最近一次 nextval() 函数的返回值是一样的。