本文主要介紹如何修改Sequence的起始值和轉(zhuǎn)換類型(單元化的Group Sequence除外)。
注意事項(xiàng)
在對(duì)Sequence的類型進(jìn)行修改時(shí),您需要注意如下事項(xiàng):
- 當(dāng)Group Sequence為大于一個(gè)單元的單元化Group Sequence時(shí),不支持轉(zhuǎn)換到其它類型或修改單元化相關(guān)的參數(shù),強(qiáng)行轉(zhuǎn)換可能會(huì)導(dǎo)致Sequence無(wú)法正常工作。
- 修改START WITH參數(shù)的值時(shí),需要仔細(xì)評(píng)估已經(jīng)產(chǎn)生的Sequence值,以及生成新Sequence值的速度,防止產(chǎn)生沖突。如非必要,請(qǐng)謹(jǐn)慎修改START WITH參數(shù)值。
- 通過
ALTER SEQUENCE CHANGE TO
語(yǔ)句轉(zhuǎn)換Sequence類型時(shí),必須指定START WITH參數(shù)的值,若沒有CHANGE TO
子句,則不強(qiáng)制。
New Sequence
語(yǔ)法ALTER SEQUENCE <name> [ CHANGE TO GROUP | TIME ]
START WITH <numeric value>
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]
參數(shù)說明參數(shù) | 說明 |
---|---|
START WITH | New Sequence的起始值,若未指定,則默認(rèn)起始值為1。 |
INCREMENT BY | New Sequence每次增?時(shí)的增量值(或稱為間隔值、步長(zhǎng)),若未指定,則默認(rèn)值為1。僅在修改New Sequence自身屬性時(shí)支持,轉(zhuǎn)換為Group或Time Sequence則不支持。 |
MAXVALUE | New Sequence允許的最大值,必須為正整數(shù)。若未指定,則默認(rèn)值為有符號(hào)長(zhǎng)整型(Signed BIGINT)的最大值,即9223372036854775807。 僅在修改New Sequence自身屬性時(shí)支持,轉(zhuǎn)換為Group或Time Sequence則不支持。 |
CYCLE或NOCYCLE | 兩個(gè)參數(shù)只能選擇其中一個(gè),說明如下:
僅在修改New Sequence自身屬性時(shí)支持,轉(zhuǎn)換為Group或Time Sequence則不支持。 |
說明
- 轉(zhuǎn)換到Group Sequence時(shí),僅支持默認(rèn)的一個(gè)單元。
- 轉(zhuǎn)換到Time-based Sequence時(shí),指定起始值無(wú)意義。
Group Sequence
語(yǔ)法ALTER SEQUENCE <name> [ CHANGE TO NEW | TIME ]
START WITH <numeric value>
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]
參數(shù)說明參數(shù) | 說明 |
---|---|
START WITH | 起始值,若未指定,則默認(rèn)起始值為1。 |
INCREMENT BY | New Sequence每次增?時(shí)的增量值(或稱為間隔值、步長(zhǎng)),若未指定,則默認(rèn)值為1。僅在轉(zhuǎn)換為New Sequence時(shí)支持。 |
MAXVALUE | New Sequence允許的最大值,必須為正整數(shù)。若未指定,則默認(rèn)值為有符號(hào)長(zhǎng)整型(Signed BIGINT)的最大值,即9223372036854775807。僅在轉(zhuǎn)換為New Sequence時(shí)支持。 |
CYCLE或NOCYCLE | 兩個(gè)參數(shù)只能選擇其中一個(gè),僅在轉(zhuǎn)換為New Sequence時(shí)支持。說明如下:
|
說明
轉(zhuǎn)換到Time-based Sequence時(shí),指定起始值、步長(zhǎng)、最大值和循環(huán)分配參數(shù)無(wú)意義。
Time-based Sequence
語(yǔ)法ALTER SEQUENCE <name> [ CHANGE TO NEW | GROUP ]
START WITH <numeric value>
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]
參數(shù)說明參數(shù) | 說明 |
---|---|
START WITH | 起始值,若未指定,則默認(rèn)起始值為1。 |
INCREMENT BY | New Sequence每次增?時(shí)的增量值(或稱為間隔值、步長(zhǎng)),若未指定,則默認(rèn)值為1。僅在轉(zhuǎn)換為New Sequence時(shí)支持。 |
MAXVALUE | New Sequence允許的最大值,必須為正整數(shù)。若未指定,則默認(rèn)值為有符號(hào)長(zhǎng)整型(Signed BIGINT)的最大值,即9223372036854775807。僅在轉(zhuǎn)換為New Sequence時(shí)支持。 |
CYCLE或NOCYCLE | 兩個(gè)參數(shù)只能選擇其中一個(gè),僅在轉(zhuǎn)換為New Sequence時(shí)支持。說明如下:
|
說明 轉(zhuǎn)換到Group Sequence時(shí),僅支持默認(rèn)的一個(gè)單元,指定起始值、步長(zhǎng)、最大值和循環(huán)分配參數(shù)無(wú)意義。
示例
- 修改一個(gè)Sequence的起始值:
ALTER SEQUENCE seq1 START WITH 1000000;
- 將一個(gè)Sequence轉(zhuǎn)換為Group Sequence:
ALTER SEQUENCE seq2 CHANGE TO GROUP START WITH 2000000;
- 將一個(gè)Sequence轉(zhuǎn)換為Time-based Sequence:
ALTER SEQUENCE seq3 CHANGE TO TIME;
- 將一個(gè)Sequence轉(zhuǎn)換為New Sequence,使用默認(rèn)的步長(zhǎng)、最大值、循環(huán)分配參數(shù):
ALTER SEQUENCE seq4 CHANGE TO NEW START WITH 100;
- 將一個(gè)Sequence轉(zhuǎn)換為New Sequence,使用自定義的步長(zhǎng)、最大值、循環(huán)分配參數(shù):
ALTER SEQUENCE seq5 CHANGE TO NEW START WITH 200 INCREMENT BY 2 MAXVALUE 300 NOCYCLE;