17.05 - ADD PRIMARY KEY (column_name) - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-175K-JPN
Language
日本語 (日本)
列セットは、table_nameのプライマリ キーです。定義された列セットにより、テーブル内の各行が固有になります。PRIMARY KEY制約の列は、NOT NULLとして定義する必要があります。PRIMARY KEY制約は、列属性またはテーブル属性として指定できます。PRIMARY KEY制約は単一列または最大64列の複合列セットに指定できます。複数の列を指定すると、プライマリ キー列セットは、指定された列の値の組み合わせに基づきます。名前なしのPRIMARY KEYテーブル制約を追加するには、次の構文を使用します。
     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)