天天看點

開發指南—Sequence—顯示用法—建立Sequence

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/庫1:
mysql> CREATE GROUP SEQUENCE seq2 UNIT COUNT 3 INDEX 0;      
  1. 執行個體2/庫2:
mysql> CREATE GROUP SEQUENCE seq2 UNIT COUNT 3 INDEX 1;      
  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;