Group Sequence
文法
CREATE [ GROUP ] SEQUENCE <name>
[ START WITH <numeric value> ]
參數說明
參數 | 說明 |
START WITH | Group Sequence 的起始值,若未指定,則預設起始值為100001。 |
示例
建立一個Group Sequence:
- 方法一請在指令行輸入如下代碼:
mysql> CREATE SEQUENCE seq1;
- 方法二請在指令行輸入如下代碼:
mysql> CREATE GROUP SEQUENCE seq1;
單元化 Group Sequence
CREATE [ GROUP ] SEQUENCE <name>
[ START WITH <numeric value> ]
[ UNIT COUNT <numeric value> INDEX <numeric value> ]
單元化Group Sequence的起始值,預設起始值依賴于單元數量和單元索引;若單元數量和單元索引未被指定或為預設值,則預設起始值為100001。 | |
UNIT COUNT | 單元化Group Sequence的單元數量,預設值為1。 |
INDEX | 單元化Group Sequence的單元索引,取值範圍為 [ 0, 單元數量 - 1 ],預設值為0。 |
- 如果未指定類型關鍵字,則預設類型為 Group Sequence。
- Group Sequence 和單元化Group Sequence是非連續的。START WITH參數對于它們僅具有指導意義,Group Sequence 和單元化Group Sequence不會嚴格按照該參數作為起始值,但是保證起始值比該參數大。
- 可以将Group Sequence看作單元化Group Sequence的一個特例,即UNIT COUNT = 1 且 INDEX = 0 時的單元化Group Sequence。
建立包含3個單元的全局唯一數字序列(将3個同名的、指定了相同單元數量和不同單元索引的單元化Group Sequence,分别用于3個不同的執行個體或庫,組成一個全局唯一數字序列)。
- 執行個體1/庫1:
mysql> CREATE GROUP SEQUENCE seq2 UNIT COUNT 3 INDEX 0;
- 執行個體2/庫2:
mysql> CREATE GROUP SEQUENCE seq2 UNIT COUNT 3 INDEX 1;
- 執行個體3/庫3:
mysql> CREATE GROUP SEQUENCE seq2 UNIT COUNT 3 INDEX 2;
Time-based Sequence
CREATE TIME SEQUENCE <name>
注意 存儲Time-based Sequence值的列必須為BIGINT類型。
建立一個Time-based Sequence:
請在指令行輸入如下代碼:
7mysql> CREATE TIME SEQUENCE seq3;
Simple Sequence
CREATE SIMPLE SEQUENCE <name>
[ START WITH <numeric value> ]
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ][ CYCLE | NOCYCLE ]
Simple Sequence的起始值,若未指定,則預設起始值為1。 | |
INCREMENT BY | Simple Sequence每次增長時的增量值(或稱為間隔值或步長),若未指定,則預設值為1。 |
MAXVALUE | Simple Sequence允許的最大值,若未指定,則預設值為有符号長整型(Signed BIGINT)的最大值,即9223372036854775807。 |
CYCLE 或 NOCYCLE | 兩者隻能選擇其一,代表當Simple Sequence增長到最大值後,是否允許繼續循環(即從START WITH重新開始)使用該Simple Sequence。若未指定,則預設值為NOCYCLE。 |
建立一個Simple Sequence,起始值是1000,步長為2,最大值為99999999999,增長到最大值後不繼續循環。
mysql> CREATE SIMPLE SEQUENCE seq4 START WITH 1000 INCREMENT BY 2 MAXVALUE 99999999999 NOCYCLE;