MODIFY PRIMARYオプション - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

MODIFY PRIMARY INDEX句またはMODIFY PRIMARY AMP INDEXオプションには、次のルールが適用されます。

  • MODIFY PRIMARYを指定する場合に、現時点でテーブルにプライマリ インデックスがなければ、列リストを記述して、新しいプライマリ インデックスに組み込む列を指定する必要があります。

    それ以外の場合、Teradata Databaseはリクエスト側にエラーを返します。

  • プライマリ インデックスまたは基本AMPインデックスのあるテーブルを変更して、異なるセットのインデックス列を含めることはできません。そうでない場合、Teradata Databaseはリクエスト側にエラーを返します。
  • UNIQUE PRIMARY INDEXを指定すると、そのテーブルの新しいプライマリ インデックスはUPIになります。

    プライマリ インデックスを固有にできるのは、プライマリ インデックスを定義している列セットにすべてのパーティション列(ある場合)も含まれている場合に限られます。

    UNIQUE PRIMARY INDEXを指定できるのは、テーブルの現在のプライマリ インデックスで少なくとも以下の条件のいずれが1つが満たされている場合に限られます。

    • 現在のプライマリ インデックスがUPIである。
    • プライマリ インデックスがPRIMARY KEYまたはUNIQUE制約によって暗黙的に定義されている。
    • 既存のUSIが新しいUPIと同じ列セットで定義されている。

      既存のUSIは、明示的に指定、または、PRIMARY KEYまたはUNIQUE制約によって暗黙的に指定できます。

    • テーブルに行が入っていない。

      そうでない場合、Teradata Databaseはリクエスト側にエラーを返します。

  • NOT UNIQUE PRIMARY INDEXを指定すると、そのテーブルまたは結合インデックスの新しいプライマリ インデックスはNUPIになります。
  • UNIQUE PRIMARY INDEXもNOT UNIQUE PRIMARY INDEXも指定しない場合、Teradata Databaseは、テーブルまたは結合インデックスのプライマリ インデックスの固有性を変更しません。
  • MODIFY PRIMARYでALLを指定することはできません。