SEQUENCE函数

    • nextval(regclass)

      描述:递增序列并返回新值。

      返回类型:numeric

      nextval函数有两种调用方式(其中第二种调用方式目前不支持Sequence命名中有特殊字符”.“的情况),如下:

      示例1:

      示例2:

      1. nextval
      2. ---------
      3. 2
      4. (1 row)
    • currval(regclass)

      返回当前会话里最近一次nextval返回的指定的sequence的数值。如果当前会话还没有调用过指定的sequence的nextval,那么调用currval将会报错。

      返回类型:numeric

      示例1:

      示例2:

      1. openGauss=# select seq1.currval;
      2. currval
      3. ---------
    • lastval()

      描述:返回当前会话里最近一次nextval返回的数值。这个函数等效于currval,只是它不用序列名为参数,它抓取当前会话里面最近一次nextval使用的序列。如果当前会话还没有调用过nextval,那么调用lastval将会报错。

      返回类型:numeric

      示例:

    • setval(regclass, numeric)

      描述:设置序列的当前数值。

      返回类型:numeric

      示例:

      1. openGauss=# select setval('seqDemo',1);
      2. setval
      3. --------
      4. 1
      5. (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

      1. ----------------
      2. 100
      3. (1 row)
      4. openGauss=# select last_insert_id();
      5. last_insert_id
      6. ----------------
      7. 100