全部產品
Search
文件中心

PolarDB:ALTER SEQUENCE

更新時間:Apr 22, 2026

本文主要介紹如何修改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 兩個參數只能選擇其中一個,說明如下:
  • CYCLE:當New Sequence的值增長到最大值後,允許從起始值開始重新迴圈。
  • NOCYCLE:當New Sequence的值增長到最大值後,不允許從起始值開始重新迴圈,再分配會報錯,如果參數未指定,預設為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時支援。說明如下:
  • CYCLE:當Sequence的值增長到最大值後,允許從起始值開始重新迴圈。
  • NOCYCLE:當New Sequence的值增長到最大值後,不允許從起始值開始重新迴圈,再分配會報錯,如果參數未指定,預設為NOCYCLE。
說明

轉換到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時支援。說明如下:
  • CYCLE:當Sequence的值增長到最大值後,允許從起始值開始重新迴圈。
  • NOCYCLE:當New Sequence的值增長到最大值後,不允許從起始值開始重新迴圈,再分配會報錯,如果參數未指定,預設為NOCYCLE。
說明 轉換到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;