VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

SEQUENCE

功能描述

Vastbase G100在Oracle兼容模式下支持以下序列(SEQUENCE)功能:

  • 支持创建(create)或修改(alter)时使用:no cache、nocache、order、no order、noorder。
  • 支持restart语法,可以重新设置序列的起始值。

更多关于创建和修改序列的语法信息请参考:CREATE SEQUENCEALTER SEQUENCE

注意事项

无。

语法格式

  • CREATE

    CREATE [ TEMPORARY | TEMP ] SEQUENCE name [ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ START [ WITH ] start ] [ CACHE cache ] [ NOCACHE ] [ NO CACHE ] [ [ NO ] CYCLE ]
        [ NOORDER ] [ [ NO ] ORDER ] [ OWNED BY { table_name.column_name | NONE } ]
    
  • ALTER

    ALTER SEQUENCE name
    [ AS data_type ]
    [ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ START [ WITH ] start ]
    [ RESTART [ [ WITH ] restart ] ]
    [ CACHE cache ] [ NOCACHE ] [ NO CACHE ] [ [ NO ] CYCLE ]
    

参数说明

  • name

    序列名称。

  • start/restart

    序列的起始值。

  • no cache | nocache

    相当于cache 1(cache:设置缓存的序列值个数)。

  • order

    保证序列号按请求顺序产生。如果想以序列号作为timestamp(时间戳)类型的话,可以采用该选项。

  • noorder | no order

    与order相对,不能保证序列号按请求顺序产生。

示例

示例1:创建序列时使用关键字。

1、 创建序列时使用nocache关键字。

create sequence SEQ_ID3  
minvalue 1  
maxvalue 99999999  
start with 1  
increment by 1  
nocache
noorder;

返回结果如下,则表示序列创建成功:

CREATE SEQUENCE

2、修改序列。

alter sequence SEQ_ID3 order;

返回结果如下,则表示修改成功:

ALTER SEQUENCE

示例2:使用restart语法,重新设置序列的起始值。

1、创建一个序列起始值为32。

CREATE SEQUENCE sequence_test20 START WITH 32;

2、使用nextval返回序列的一个值。

SELECT nextval('sequence_test20');

返回结果为:

 nextval
---------
      32
(1 row)

3、修改序列的起始值。

ALTER SEQUENCE sequence_test20 RESTART WITH 22;

4、查询修改结果。

SELECT nextval('sequence_test20');

返回结果为:

 nextval
---------
      22
(1 row)