目的
CREATE TABLE文とCREATE JOIN INDEX文には、オプションで、テーブルまたは結合インデックスの作成方法を決定するいくつかの修飾句を含めることができます。PRIMARY INDEX修飾子、PRIMARY AMP [INDEX]修飾子、NO PRIMARY INDEX修飾子、PRIMARY KEY修飾子、UNIQUE修飾子、およびPARTITION BY修飾子は、テーブルまたは結合インデックスにプライマリ インデックスまたは基本AMPインデックスを含めるかどうかに影響します。PrimaryIndexDefaultフィールドでは、これらのどの修飾子も指定されずに作成されたテーブルまたは結合インデックスについて、Teradata Databaseで自動的にプライマリ インデックスを作成するか、プライマリ インデックスがないNoPIテーブルとして作成するかを決定します。
フィールド グループ
一般
有効な設定値
設定 | 説明 |
---|---|
D | このフィールドを Teradataのデフォルト設定にセットまたはリセットします。 これはPに指定した場合と同じです。 |
P | PRIMARY INDEX修飾子、PRIMARY AMP [INDEX]修飾子、NO PRIMARY INDEX修飾子、PRIMARY KEY修飾子、UNIQUE修飾子、およびPARTITION BY修飾子のいずれも含まれていないCREATE TABLE文およびCREATE JOIN INDEX文で作成されたテーブルと結合インデックスに対して、Teradata Databaseでプライマリ インデックスを自動的に作成します。テーブルの最初の列は非固有プライマリ インデックス(NUPI)として使用されます。 最初の列を使用すると、この列がプライマリ インデックスに適した選択ではない場合に、AMPへの行の分散で大きなスキューが発生することがあります。
|
N | Teradata Databaseでは、PRIMARY INDEX修飾子、PRIMARY AMP [INDEX]修飾子、NO PRIMARY INDEX修飾子、PRIMARY KEY修飾子、UNIQUE修飾子、およびPARTITION BY修飾子なしで作成されたテーブルと結合インデックスに対してプライマリ インデックスを作成しません。 プライマリ インデックスなし(NoPI)をデフォルトにすると、最初の列をプライマリ インデックスとして使用する際に発生するスキューを回避できることがあります。 |
デフォルト
D
変更の反映
DBS制御レコードへの書き込みが行なわれた後。
使用上の注意
CREATE TABLE文でPARTITION BY句を指定するが、PRIMARY INDEX句も、PRIMARY AMP [INDEX]句も、NO PRIMARY INDEX句も指定しない場合、PrimaryIndexDefaultの設定、およびCREATE TABLEにPRIMARY KEY制約またはUNIQUE制約を含むかどうかに関係なく、デフォルトは、NO PRIMARY INDEXです。
ベスト プラクティスとしては、PrimaryIndexDefaultフィールドの設定は使用せずに、CREATE TABLE文でPRIMARY INDEX、PRIMARY AMP [INDEX]、またはNO PRIMARY INDEXを明示的に指定することです。
関連トピック
システム定義のプライマリ インデックスがどのように作成されるかを制御するルールについては、<Teradata Vantage™ SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。