ADD PRIMARY KEY (column_name)揮発テーブルにPRIMARY KEY制約を指定することはできません。次のデータ型を含む列にPRIMARY KEY制約を指定することはできません。
- BLOB
- BLOB UDT
- CLOB
- CLOB UDT
- VARIANT_TYPE
- ARRAY
- VARRAY
- Period
- XML
- Geospatial
- JSON
- DATASET
行レベル セキュリティ制約列にPRIMARY KEY制約を指定することはできません。
テーブルごとに指定できるプライマリ キーは1つのみです。プライマリ キーにより、参照制約が強制適用されます。他のテーブルと参照整合性関係のためのプライマリ キーの候補を指定するには、UNIQUE列属性を使用します。これは、参照制約には必要ありませんが、標準の参照整合性制約とバッチ参照整合性制約には必要です。
制約を強制適用するために、PRIMARY KEYテーブル属性は、非テンポラル テーブルに固有セカンダリ インデックスまたはUPIを暗黙的に使用し、ほとんどのテンポラル テーブルに単一テーブル結合インデックスを暗黙的に使用します。詳細については、<Teradata Vantage™ - テンポラル テーブル サポート、B035-1182>を参照してください。これらのシステム定義のセカンダリ インデックスまたは単一テーブル結合インデックスには、テーブルごとに最大32のセカンダリ インデックス、ハッシュ インデックス、および結合インデックスが含まれます。
UNIQUE制約のように、PRIMARY KEY制約により、代替キーが参照整合性関係の一部として指定されていると、その代替キーの固有性が保証されます。
プライマリ インデックスを指定しないと、暗黙的に定義されるインデックスは次のようになります。
- 非テンポラル テーブルの場合は固有プライマリ インデックス。
- 定義されず、テーブルはNoPIまたは列パーティション テーブル。
プライマリ インデックスを指定すると、暗黙的に定義されるインデックスは、次のようになります。
- 非テンポラル テーブルの場合はセカンダリ インデックス。
- テンポラル テーブルの場合のシステム定義の単一テーブル結合インデックス。詳細については、<Teradata Vantage™ - ANSIテンポラル テーブル サポート、B035-1186>および<Teradata Vantage™ - テンポラル テーブル サポート、B035-1182>を参照してください。
PRIMARY KEY制約は、テンポラル テーブルと非テンポラル テーブルに対して有効です。PRIMARY KEY制約を使用するテンポラル テーブルの詳細については、<Teradata Vantage™ - テンポラル テーブル サポート、B035-1182>を参照してください。
- CONSTRAINT name
- 名前付きのPRIMARY KEYテーブル制約を追加するには、この構文を使用します。
ADD CONSTRAINT constraint_name PRIMARY KEY (column_name)