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>
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);
- インスタンス1またはデータベース1でユニットシーケンスを作成します。
- 例 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);