この例では、明示的なPRIMARY INDEX句も明示的なNO PRIMARY INDEX句も指定されませんが、column_2にUNIQUE制約が指定されます。
CREATE TABLE test_1 ( column_1 INTEGER NOT NULL, column_2 INTEGER NOT NULL CONSTRAINT UNIQUE (column_2));
PrimaryIndexDefaultパラメータの設定に関係なく、Vantageはcolumn_2に、このUPIの定義されたテーブルを作成します。これは、PRIMARY INDEXもNO PRIMARY INDEXも明示的に指定されていないためです。このため、システムは、デフォルトのプライマリ インデックスを作成するというルールに従って、UNIQUE制約を使用して最初の列(column_2)にUPIを作成します。
その結果、test_1のSHOW TABLEリクエストは次のSQLテキストを返します。
CREATE SET TABLE test_1 ,NO FALLBACK , NO BEFORE JOURNAL, NO AFTER JOURNAL, CHECKSUM = DEFAULT ( ( column_1 INTEGER NOT NULL, column_2 INTEGER NOT NULL, CONSTRAINT UNIQUE (column_2);
INDEX句が指定されていないため、DBS制御にPrimaryIndexDefaultパラメータが設定されているかどうかに関係なく、Vantageはcolumn_2 (データ ディクショナリのPRIMARY KEY制約に対するものとしてマーク付け)に固有プライマリ インデックスで定義されたテーブルを作成します。
次の例でも、明示的なPRIMARY INDEX句または明示的なNO PRIMARY INDEX句は指定されませんが、column_2にPRIMARY KEY制約が指定されます。
CREATE TABLE test_2 AS ( column_1 INTEGER NOT NULL column_2 INTEGER NOT NULL CONSTRAINT PRIMARY KEY (column_2));
column_2がプライマリ キーとして定義されているため、PrimaryIndexDefaultパラメータの設定に関係なく、Vantageはcolumn_2 (データ ディクショナリのPRIMARY KEY制約に対するものとしてマーク付け)にUPIが定義されたテーブルを作成します。そのため、test_2のSHOW TABLEリクエストは次のSQLテキストを返します。
CREATE SET TABLE test_2 ,NO FALLBACK , NO BEFORE JOURNAL, NO AFTER JOURNAL, CHECKSUM = DEFAULT ( column_1 INTEGER NOT NULL, column_2 INTEGER NOT NULL, CONSTRAINT PRIMARY KEY (column_2);
INDEX句が指定されていないため、DBS制御にPrimaryIndexDefaultパラメータが設定されているかどうかに関係なく、Vantageはcolumn_2に固有プライマリ インデックスで定義されたテーブルを作成します。
この例では、明示的なPRIMARY INDEX句も明示的なNO PRIMARY INDEX句も指定されていません。このリクエストはまた、column_1にUNIQUE制約を、column_2にPRIMARY KEY制約を指定します。
CREATE TABLE test_3 AS ( column_1 INTEGER NOT NULL column_2 INTEGER NOT NULL CONSTRAINT UNIQUE (column_1) CONSTRAINT PRIMARY KEY (column_2));
この場合、Vantageはデフォルトの階層に従って非プライマリ インデックス列をプライマリ インデックスに変換してから、PRIMARY KEY制約をこのテーブルの固有プライマリ インデックスに変換します。これは、PRIMARY KEY制約が、デフォルトのプライマリ インデックス ルール階層のUNIQUE制約よりも優先されるためです。
PrimaryIndexDefaultパラメータの設定に関係なく、Vantageはcolumn_2にUPIが定義されたテーブルを作成し、column_1のUNIQUE制約を固有セカンダリ インデックスに変換するため、test_3のSHOW TABLEリクエストは次の作成テキストを返します。
CREATE SET TABLE test_3 ,NO FALLBACK , NO BEFORE JOURNAL, NO AFTER JOURNAL, CHECKSUM = DEFAULT (column_1 INTEGER NOT NULL, column_2 INTEGER NOT NULL, CONSTRAINT UNIQUE (column_1) CONSTRAINT PRIMARY KEY (column_2));