17.05 - PRIMARY INDEX - 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
日本語 (日本)

プライマリ インデックス。

プライマリ インデックスは、AMPをまたいでテーブルの行をパーティション化するためのハッシュ アルゴリズムによって使用されます。

キュー テーブルは、NoPIテーブルにしたり、パーティションプライマリ インデックスを持つことができません。

プライマリ インデックスを指定しない場合、Vantageは次の指針に基づいて、プライマリ インデックスとして定義する列セットを判別して暗黙的に指定します。

  • プライマリ インデックスを指定せずにPRIMARY KEY制約を指定する場合、暗黙的に定義されたプライマリ インデックスがテーブルのプライマリ キーになります。
  • プライマリ キーを指定せずにUNIQUE制約を指定する場合、暗黙的に定義されたプライマリ インデックスがテーブルに定義される最初のUNIQUE制約になります。
  • PRIMARY KEY制約もUNIQUE制約もどちらも指定しない場合、暗黙的に定義されたプライマリ インデックスがQITS列になります。

    この場合、プライマリ インデックスはデフォルトで非固有で、固有性制約またはUSIとして定義することはできません。

    この制限があるのは、タイムスタンプ値は繰り返すことがあるので、固有であると推定できないからです。

UNIQUE
名前付き列は固有である必要があります。
プライマリ インデックスとすべてのセカンダリ インデックスは、固有として定義できます。唯一の例外は、キュー テーブルにQITS列だけしかない場合です。この場合、そのQITS列はプライマリ インデックスでもある必要があり、UPIであってはなりません。タイムスタンプ値は繰り返すことがあるので、固有であると推定できないからです(<Teradata Vantage™ - データ タイプおよびリテラル、B035-1143>を参照)。
primary_index_column
値をプライマリ インデックスの基礎として使用する列セット内の列。
リスト内の列は、BLOB、CLOB、Period、XML、Geospatial、JSON、またはDATASETのデータ型を持つことはできません。
複数の列名を指定すると、インデックスは指定された各列が組み合わせられた値に基づいて作成されます。1個のインデックスには最大で64列指定でき、1個のテーブルには最大で32個のセカンダリ、ハッシュおよび結合インデックスを組み合わせたものを作成できます(ORDER BY句を指定して定義された複数列NUSIはこの計算では2個のインデックスとして数えられます)。これには非テンポラル テーブルにPRIMARY KEYおよびUNIQUE制約を実装するために使用されるシステム定義のセカンダリ インデックスと、テンポラル テーブルにPRIMARY KEY制約およびUNIQUE制約を実装するために使用される単一テーブル結合インデックスが含まれます。