SEQUENCE函数
nextval(regclass)
描述:递增序列并返回新值。
返回类型:numeric
nextval函数有两种调用方式(其中第二种调用方式目前不支持Sequence命名中有特殊字符”.“的情况),如下:
示例1:
示例2:
nextval
---------
2
(1 row)
currval(regclass)
返回当前会话里最近一次nextval返回的指定的sequence的数值。如果当前会话还没有调用过指定的sequence的nextval,那么调用currval将会报错。
返回类型:numeric
示例1:
示例2:
openGauss=# select seq1.currval;
currval
---------
lastval()
描述:返回当前会话里最近一次nextval返回的数值。这个函数等效于currval,只是它不用序列名为参数,它抓取当前会话里面最近一次nextval使用的序列。如果当前会话还没有调用过nextval,那么调用lastval将会报错。
返回类型:numeric
示例:
setval(regclass, numeric)
描述:设置序列的当前数值。
返回类型:numeric
示例:
openGauss=# select setval('seqDemo',1);
setval
--------
1
(1 row)
setval(regclass, numeric, Boolean)
描述:设置序列的当前数值以及is_called标志。
返回类型:numeric
pg_sequence_last_value(sequence_oid oid, OUT cache_value int16, OUT last_value int16)
描述:获取指定sequence的参数,包含缓存值,当前值。
返回类型:int16,int16
last_insert_id()
描述:获取最近一次为自动增长列成功插入的第一个自动生成的值。
返回类型:int16
last_insert_id(int16)
描述:设置下一次last_insert_id()函数的返回值,并返回此值。若参数为NULL,将下一次last_insert_id()函数的返回值设为0,此函数返回NULL。
返回值类型:int16
----------------
100
(1 row)
openGauss=# select last_insert_id();
last_insert_id
----------------
100