全部產品
Search
文件中心

PolarDB:關聯Sequence

更新時間:Jul 06, 2024

PolarDB-X為指定了自增列的表自動關聯一個Sequence,如果不指定Sequence類型,在AUTO模式資料庫中,預設是New Sequence,在DRDS模式資料庫中,預設是Group Sequence。

與表關聯的Sequence的命名是以AUTO_SEQ_為首碼,後面加上表名。

除了預設的Sequence類型, PolarDB-X也支援建立表時通過擴充文法關聯其它類型的Sequence。

關聯New Sequence或Time-based Sequence

自增列與New Sequence或Time-based Sequence關聯,文法如下:

CREATE TABLE <name> (
   <column> ... AUTO_INCREMENT [ BY NEW | TIME ],
   <column definition>,
   ...
) ... AUTO_INCREMENT=<start value>
說明 如果指定了BY TIME,即Time-based Sequence,則該列類型必須為BIGINT。

關聯Group Sequence

自增列與Group Sequence關聯,文法如下:

CREATE TABLE <name> (
   <column> ... AUTO_INCREMENT [ BY GROUP ] [ UNIT COUNT <numeric value> INDEX <numeric value> ],
   <column definition>,
   ...
) ... AUTO_INCREMENT=<start value>

樣本

  • 樣本一

    DRDS模式資料庫中,建立一張預設使用Group Sequence作為自增列的表:

    CREATE TABLE tab1 (
    col1 BIGINT NOT NULL AUTO_INCREMENT,
    col2 VARCHAR(16),
    PRIMARY KEY(col1)
    ) DBPARTITION BY HASH(col1);
  • 樣本二

    DRDS模式資料庫中,建立三張同名的、使用相同單元數量和不同單元索引的單元化Group Sequence作為自增列的表,分別用於三個不同的執行個體或庫:

    • 執行個體1或庫1:
      CREATE TABLE tab2 (
      col1 BIGINT NOT NULL AUTO_INCREMENT UNIT COUNT 3 INDEX 0,
      col2 VARCHAR(16),
      PRIMARY KEY(col1)
      ) DBPARTITION BY HASH(col1);
    • 執行個體2或庫2:
      CREATE TABLE tab2 (
      col1 BIGINT NOT NULL AUTO_INCREMENT UNIT COUNT 3 INDEX 1,
      col2 VARCHAR(16),
      PRIMARY KEY(col1)
      ) DBPARTITION BY HASH(col1);
    • 執行個體3或庫3:
      CREATE TABLE tab2 (
      col1 BIGINT NOT NULL AUTO_INCREMENT UNIT COUNT 3 INDEX 2,
      col2 VARCHAR(16),
      PRIMARY KEY(col1)
      ) DBPARTITION BY HASH(col1);
  • 樣本三

    DRDS模式資料庫中,建立一張使用TIme-based Sequence作為自增列的表:

    CREATE TABLE tab3 (
    col1 BIGINT NOT NULL AUTO_INCREMENT BY TIME,
    col2 VARCHAR(16),
    PRIMARY KEY(col1)
    ) DBPARTITION BY HASH(col1);
  • 樣本四

    AUTO模式資料庫中,建立一張預設使用New Sequence作為自增列的表:

    CREATE TABLE tab4 (
    col1 BIGINT NOT NULL AUTO_INCREMENT,
    col2 VARCHAR(16),
    PRIMARY KEY(col1)
    ) PARTITION BY KEY(col1);
  • 樣本五

    AUTO模式資料庫中,建立一張使用Group Sequence作為自增列的表:

    CREATE TABLE tab5 (
    col1 BIGINT NOT NULL AUTO_INCREMENT BY GROUP,
    col2 VARCHAR(16),
    PRIMARY KEY(col1)
    ) PARTITION BY HASH(col1);