全部產品
Search
文件中心

PolarDB:CREATE SEQUENCE

更新時間:Jul 06, 2024

本文介紹建立不同類型Sequence的方法。

New Sequence

文法

CREATE [NEW] SEQUENCE <name>
[ START WITH <numeric value> ]
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]

參數說明

參數

說明

START WITH

New Sequence的起始值,若未指定,則預設起始值為1。

INCREMENT BY

New Sequence每次增⻓時的增量值(或稱為間隔值、步長),若未指定,則預設值為1。

MAXVALUE

New Sequence允許的最大值,必須為正整數。若未指定,則預設值為有符號長整型(Signed BIGINT)的最大值,即9223372036854775807。

CYCLE或NOCYCLE

兩個參數只能選擇其中一個,說明如下:

  • CYCLE:當New Sequence的值增長到最大值後,允許從起始值開始重新迴圈。

  • NOCYCLE:當New Sequence的值增長到最大值後,不允許從起始值開始重新迴圈,再分配會報錯,如果參數未指定,預設為NOCYCLE。

說明

如果未指定類型關鍵字,在AUTO模式資料庫中預設建立New Sequence,DRDS模式資料庫不支援建立New Sequence。

樣本

建立一個New Sequence,起始值是1000:

CREATE NEW SEQUENCE newseq START WITH 1000;

建立一個New Sequence,起始值為1,步長為2,最大值為100,允許迴圈分配:

CREATE NEW SEQUENCE newseq2 START WITH 1 INCREMENT BY 2 MAXVALUE 100 CYCLE;

Group Sequence

文法

CREATE [GROUP] SEQUENCE <name>
[ START WITH <numeric value> ]
[ UNIT COUNT <numeric value> INDEX <numeric value> ]
說明

如果未指定類型關鍵字,在DRDS模式資料庫中預設建立Group Sequence。在AUTO模式資料庫中建立時需要顯式指定GROUP類型。

參數說明

參數

說明

START WITH

Group Sequence的起始值,預設起始值依賴於單元數量和單元索引,如果沒有指定單元數量和單元索引,則預設起始值為100001。

UNIT COUNT

Group Sequence的單元數量,預設值為1。

INDEX

Group Sequence的單元索引,取值範圍為[0, 單元數量-1],預設值為0。

說明
  • Group Sequence是非連續的。START WITH參數僅具有指導意義, Group Sequence不會嚴格將該參數作為起始值,但是保證起始值比該參數值更大。

  • 大於一個單元的Group Sequence,不支援轉換到其它類型的Sequence。

  • 建立Group Sequence後,不支援修改單元數量和索引。

樣本

建立一個普通的Group Sequence,預設一個單元:

CREATE GROUP SEQUENCE groupseq;

建立包含三個單元的跨執行個體或庫的全域Group Sequence(將三個指定了相同單元數量和不同單元索引的同名Group Sequence,分別用於三個不同的執行個體或庫,組成一個全域Group Sequence)。

  • 執行個體1或庫1:

    CREATE GROUP SEQUENCE ugroupseq UNIT COUNT 3 INDEX 0;
  • 執行個體2或庫2:

    CREATE GROUP SEQUENCE ugroupseq UNIT COUNT 3 INDEX 1;
  • 執行個體3或庫3:

    CREATE GROUP SEQUENCE ugroupseq UNIT COUNT 3 INDEX 2;

Time-based Sequence

文法

CREATE TIME SEQUENCE <name>
重要

儲存Time-based Sequence值的列必須為BIGINT類型。

樣本

建立一個Time-based Sequence:

CREATE TIME SEQUENCE seq3;