すべてのプロダクト
Search
ドキュメントセンター

PolarDB:シーケンスをテーブル内の自動インクリメント列に関連付ける

最終更新日:Jun 05, 2024

PolarDB-Xは自動的にシーケンスを作成し、そのシーケンスをテーブル内の自動インクリメント列に関連付けることができます。 自動インクリメント列を含むテーブルを作成するときにシーケンスタイプを指定しない場合、PolarDB-Xは、テーブルを含むデータベースのパーティショニングモードに基づいて特定のタイプのシーケンスを作成します。 テーブルがAUTOモードのデータベースに属している場合、PolarDB-Xは自動的にNEWシーケンスを作成します。 テーブルがDRDSモードのデータベースに属している場合、PolarDB-Xは自動的にGROUPシーケンスを作成します。

テーブルの自動インクリメント列に関連付けられているシーケンスの名前は、AUTO_SEQ_Table name形式で指定されます。

PolarDB-Xでは、テーブルの作成時にテーブルの自動インクリメント列に関連付けるシーケンスのタイプを指定することもできます。

新しいシーケンスまたは時間ベース (time) シーケンスをテーブル内の自動インクリメント列に関連付ける

構文:

CREATE TABLE <name> (
   <column> ... AUTO_INCREMENT [ BY NEW | TIME] 、
   <列定義> 、
   ...
) ... AUTO_INCREMENT=<start value> 
説明 自動インクリメント列の時間ベースのシーケンスタイプを指定するBY TIMEキーワードを指定する場合、自動インクリメント列のデータ型はBIGINTである必要があります。

GROUPシーケンスをテーブル内の自動インクリメント列に関連付ける

構文:

CREATE TABLE <name> (
   <column> ... AUTO_INCREMENT [ BY GROUP ] [ユニットカウント <数値> INDEX <数値>] 、
   <列定義> 、
   ...
) ... AUTO_INCREMENT=<start value> 

  • 例 1

    次のステートメントを実行して、デフォルトのGROUPシーケンスを使用してDRDSモードのデータベースの自動インクリメント列の値を生成するテーブルを作成できます。

    テーブルの作成tab1 (
    col1 BIGINT NOT NULL AUTO_INCREMENT、col2 VARCHAR(16) 、主要なキー (col1)
    ) ハッシュによるDBPARTITION (col1); 
  • 例 2

    次のステートメントを実行して、3つの異なるインスタンスまたは3つの異なるデータベースで同じテーブル名を使用するテーブルを作成できます。 各テーブルの自動インクリメント列は、同じGROUPシーケンスに属するユニットシーケンスを使用して値を生成します。 ユニットシーケンスの定義におけるUNIT COUNTパラメータの値は同じであり、INDEXパラメータの値は異なる。

    • インスタンス1またはデータベース1でユニットシーケンスを作成します。
      テーブルの作成tab2 (
      col1 BIGINT NOT NULL AUTO_INCREMENTユニットカウント3インデックス0、col2 VARCHAR(16) 、主要なキー (col1)
      ) ハッシュによるDBPARTITION (col1); 
    • インスタンス2またはデータベース2でユニットシーケンスを作成します。
      テーブルの作成tab2 (
      col1 BIGINT NOT NULL AUTO_INCREMENTユニットカウント3インデックス1、col2 VARCHAR(16) 、主要なキー (col1)
      ) ハッシュによるDBPARTITION (col1); 
    • インスタンス3またはデータベース3でユニットシーケンスを作成します。
      テーブルの作成tab2 (
      col1 BIGINT NOT NULL AUTO_INCREMENTユニットカウント3インデックス2、col2 VARCHAR(16) 、主要なキー (col1)
      ) ハッシュによるDBPARTITION (col1); 
  • 例 3

    次のステートメントを実行して、TIMEシーケンスを使用してDRDSモードのデータベースの自動インクリメント列の値を生成するテーブルを作成できます。

    テーブルの作成tab3 (
    col1 BIGINT NOT NULL時間によるAUTO_INCREMENT、col2 VARCHAR(16) 、主要なキー (col1)
    ) ハッシュによるDBPARTITION (col1); 
  • 例 4

    次のステートメントを実行して、デフォルトのNEWシーケンスを使用してautoモードのデータベースの自動インクリメント列の値を生成するテーブルを作成できます。

    テーブルの作成tab4 (
    col1 BIGINT NOT NULL AUTO_INCREMENT、col2 VARCHAR(16) 、主要なキー (col1)
    ) キーによるパーティー (col1); 
  • 例 5

    次のステートメントを実行して、GROUPシーケンスを使用してautoモードのデータベースの自動インクリメント列の値を生成するテーブルを作成できます。

    テーブルの作成tab5 (
    col1 BIGINT NOT NULLグループによるAUTO_INCREMENT、col2 VARCHAR(16) 、主要なキー (col1)
    ) ハッシュによるパーティー (col1);