本文主要介紹如何修改Sequence的起始值和轉換類型(單元化的Group Sequence除外)。
注意事項
在對Sequence的類型進行修改時,您需要注意如下事項:
- 當Group Sequence為大於一個單元的單元化Group Sequence時,不支援轉換到其它類型或修改單元化相關的參數,強行轉換可能會導致Sequence無法正常工作。
- 修改START WITH參數的值時,需要仔細評估已經產生的Sequence值,以及產生新Sequence值的速度,防止產生衝突。如非必要,請謹慎修改START WITH參數值。
- 通過
ALTER SEQUENCE CHANGE TO語句轉換Sequence類型時,必須指定START WITH參數的值,若沒有CHANGE TO子句,則不強制。
New Sequence
文法ALTER SEQUENCE <name> [ CHANGE TO GROUP | TIME ]
START WITH <numeric value>
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]参数说明
| 參數 | 說明 |
| START WITH | New Sequence的起始值,若未指定,則預設起始值為1。 |
| INCREMENT BY | New Sequence每次增⻓時的增量值(或稱為間隔值、步長),若未指定,則預設值為1。僅在修改New Sequence自身屬性時支援,轉換為Group或Time Sequence則不支援。 |
| MAXVALUE | New Sequence允許的最大值,必須為正整數。若未指定,則預設值為有符號長整型(Signed BIGINT)的最大值,即9223372036854775807。 僅在修改New Sequence自身屬性時支援,轉換為Group或Time Sequence則不支援。 |
| CYCLE或NOCYCLE | 兩個參數只能選擇其中一個,說明如下:
僅在修改New Sequence自身屬性時支援,轉換為Group或Time Sequence則不支援。 |
說明
- 轉換到Group Sequence時,僅支援預設的一個單元。
- 轉換到Time-based Sequence時,指定起始值無意義。
Group Sequence
文法ALTER SEQUENCE <name> [ CHANGE TO NEW | TIME ]
START WITH <numeric value>
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]参数说明
| 參數 | 說明 |
| START WITH | 起始值,若未指定,則預設起始值為1。 |
| INCREMENT BY | New Sequence每次增⻓時的增量值(或稱為間隔值、步長),若未指定,則預設值為1。僅在轉換為New Sequence時支援。 |
| MAXVALUE | New Sequence允許的最大值,必須為正整數。若未指定,則預設值為有符號長整型(Signed BIGINT)的最大值,即9223372036854775807。僅在轉換為New Sequence時支援。 |
| CYCLE或NOCYCLE | 兩個參數只能選擇其中一個,僅在轉換為New Sequence時支援。說明如下:
|
說明
轉換到Time-based Sequence時,指定起始值、步長、最大值和迴圈分配參數無意義。
Time-based Sequence
文法ALTER SEQUENCE <name> [ CHANGE TO NEW | GROUP ]
START WITH <numeric value>
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]参数说明
| 參數 | 說明 |
| START WITH | 起始值,若未指定,則預設起始值為1。 |
| INCREMENT BY | New Sequence每次增⻓時的增量值(或稱為間隔值、步長),若未指定,則預設值為1。僅在轉換為New Sequence時支援。 |
| MAXVALUE | New Sequence允許的最大值,必須為正整數。若未指定,則預設值為有符號長整型(Signed BIGINT)的最大值,即9223372036854775807。僅在轉換為New Sequence時支援。 |
| CYCLE或NOCYCLE | 兩個參數只能選擇其中一個,僅在轉換為New Sequence時支援。說明如下:
|
說明 轉換到Group Sequence時,僅支援預設的一個單元,指定起始值、步長、最大值和迴圈分配參數無意義。
樣本
- 修改一個Sequence的起始值:
ALTER SEQUENCE seq1 START WITH 1000000; - 將一個Sequence轉換為Group Sequence:
ALTER SEQUENCE seq2 CHANGE TO GROUP START WITH 2000000; - 將一個Sequence轉換為Time-based Sequence:
ALTER SEQUENCE seq3 CHANGE TO TIME; - 將一個Sequence轉換為New Sequence,使用預設的步長、最大值、迴圈分配參數:
ALTER SEQUENCE seq4 CHANGE TO NEW START WITH 100; - 將一個Sequence轉換為New Sequence,使用自訂的步長、最大值、迴圈分配參數:
ALTER SEQUENCE seq5 CHANGE TO NEW START WITH 200 INCREMENT BY 2 MAXVALUE 300 NOCYCLE;