次の例に対して、プライマリ インデックスが定義された次のソース テーブル定義があると仮定します。
CREATE TABLE source_pi ( column_1 INTEGER column_2 INTEGER) UNIQUE PRIMARY INDEX (column_1);
また、例に対して次のNoPI テーブル定義を作成したとします。
CREATE TABLE source_nopi ( column_1 INTEGER column_2 INTEGER) NO PRIMARY INDEX;
次のすべてのCREATE TABLE … ASリクエストは、それぞれNO PRIMARY INDEXを明示的に指定しているため、NoPIテーブルを生成します。
CREATE TABLE target_nopi AS source_pi WITH DATA NO PRIMARY INDEX; CREATE TABLE target_nopi AS source_nopi WITH DATA NO PRIMARY INDEX; CREATE TABLE target_nopi AS ( SELECT column_1, column_2 FROM source_pi) WITH DATA NO PRIMARY INDEX; CREATE TABLE target_nopi AS ( SELECT column_1, column_2 FROM source_nopi) WITH DATA NO PRIMARY INDEX;
前の例とは異なり、次のCREATE TABLEリクエストの実行結果は、DBS制御パラメータのPrimaryIndexDefaultの設定に応じて異なります。
CREATE TABLE target AS ( SELECT column_1, column_2 FROM source_nopi) WITH DATA;
PrimaryIndexDefaultの値 | 結果として作成されるテーブル |
---|---|
N | プライマリ インデックスなし。 NO PRIMARY INDEXを明示的に指定していない場合で、テーブルの列にPRIMARY KEY制約またはUNIQUE制約も指定していない場合、VantageはデフォルトでtargetをNoPIテーブルとして定義します。 |
DまたはP | 非固有プライマリ インデックス。 何も指定されていない場合のテーブルのプライマリ インデックスの選択に関するルールに従って、NUPIがデフォルトで定義されます。 この場合、プライマリ インデックスはtargetに定義された最初の列(column_1)に定義されます。 targetのいずれの列についても、PRIMARY KEY制約とUNIQUE制約のいずれも定義されていないため、プライマリ インデックスはNUPIとして定義されます。 |