PRIMARY INDEX - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/ncd1596241368722.ditamap
dita:ditavalPath
ja-JP/ncd1596241368722.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

結合インデックスに定義されたプライマリ インデックス。 集約結合インデックス用のプライマリ インデックスは、その結合インデックス定義のGROUP BY句に指定された各列から選択されたものでなければなりません。 集約列は、プライマリ インデックスの一部として指定することはできません。 プライマリ インデックスが圧縮されていない場合は、1つ以上のパーティション式を指定することにより、プライマリ インデックスを単一レベルまたはマルチレベルの行パーティション プライマリ インデックスとして定義できます。 PARTITION BYを参照してください。 インデックスが圧縮で定義されている場合には、結合インデックスのプライマリ インデックスをパーティション化することはできません。

結合インデックスへの行パーティション プライマリ インデックスの指定には、次のルールが適用されます。
  • 集約結合インデックス用のパーティション列は、結合インデックス定義のGROUP BY句に指定された列から取られたものであることが必要です。
  • 集約列はPPI用のパーティション列として指定できません。
  • 結合インデックスのパーティション レベルは、元の基本テーブルに対する制約として機能します。基本テーブルに対する挿入、削除、または更新の操作により、1つ以上のパーティション式の評価がnullにされて、結合インデックスでパーティション違反が発生した場合、リクエストではエラー メッセージを返し、基本テーブルも結合インデックスも更新されません。
  • 結合インデックス定義に外部結合が含まれている場合、基本テーブルの行を削除すると一致しない行のその結合インデックスに挿入されてしまう場合があります。
  • パーティション結合インデックスの場合、基本テーブルの行の挿入、更新または削除が必要なときに、それを妨げないパーティション レベルを定義する必要があります。
  • NUPIを明示的に定義しない場合、デフォルトで結合インデックスに定義された最初の列がNUPIに割り当てられます。パーティション プライマリ インデックスを使用して非圧縮結合インデックスを定義することができます。ただし、結合インデックスが圧縮されているときには、プライマリ インデックスをパーティション化することはできません。
  • 各NUSIは、1つの結合インデックスに対して最大32個のセカンダリ インデックスを定義可能という制限にカウントされます。ORDER BY句を使用して定義されるそれぞれの複数列NUSIは、1つの結合インデックスにつき32個という制限に対して2つの連続したインデックスとカウントされます。
結合インデックスのプライマリ インデックスは、次のいずれかのデータ型の列に対しては定義できません。
  • BLOBベースのUDT
  • CLOBベースのUDT
  • XMLベースのUDT
  • VARIANT-TYPE
  • ARRAY/VARRAY
  • XML
  • Geospatial
  • 派生PERIOD
  • Period
UNIQUE
非圧縮単一テーブルの結合インデックスに対して固有のプライマリ インデックスを定義することができますが、その他のすべての結合インデックスのプライマリ インデックスは、固有列に定義されている場合でも非固有である必要があります。
index_name
定義するプライマリ インデックスのオプションの名前。データベース オブジェクトの命名ルールについては、<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。
(primary_index_column)
プライマリ インデックス列の名前。複合プライマリ インデックスの場合、primary_index_columnは括弧で囲まれたすべてのインデックス列のカンマ区切りリストを示します。派生PERIOD列の開始列または終了列をプライマリ インデックス内に指定することはできません。
行レベル セキュリティ制約列をプライマリ インデックスのコンポーネントとして含めるようにテーブルを変更することはできません。
JSONデータ型で定義されている列にプライマリ インデックスは定義できません。