テーブルに対してPRIMARY、PRIMARY AMP、NO PRIMARY、およびPARTITION BYまたはNOT PARTITIONED句を再定義するには、次の方法のいずれかを使用します。
- ALTER TABLE MODIFY PRIMARYまたはPRIMARY AMP構文を使用して、テーブルのプライマリ インデックスまたは基本AMPインデックスを変更します。<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>にあるALTER TABLEのトピック「MODIFY PRIMARY」、MODIFY PRIMARY句に関する一般的なルール、およびテーブルまたは結合インデックスのパーティションの変更を参照してください。
- テーブルのパーティションを変更する場合は、PRIMARY、PRIMARY AMP、またはNO PRIMARYを指定せずに、MODIFYを指定できます。PRIMARY、PRIMARY AMP、またはNO PRIMARYキーワードは、テーブルのプライマリ インデックスまたは基本AMPインデックスを変更する場合にのみ必要です。
- プライマリ インデックス、基本AMPインデックスまたはパーティションを適切に定義して新しいテーブルを作成してから、INSERT ... SELECTを使用して、古いテーブルから新しいテーブルにデータをコピーします。ALTER TABLEリクエストを使用しないプライマリ インデックス、基本AMPインデックス、またはパーティションの再定義を参照してください。
- 以下の操作を行なう場合、CREATE TABLE AS構文を使用します。
- プライマリ インデックスまたは基本AMPインデックスおよびパーティション付きの新しいテーブルを必要に応じて作成します。
- 古いテーブルから新しいテーブルに行をコピーし、必要に応じて統計もコピーします。
CREATE TABLE (AS句)を参照してください。
ALTER TABLEを使用して、テーブルのプライマリ インデックス、基本AMPインデックス、またはパーティションを以下のように変更できます。MODIFY PRIMARY句に関する一般的なルール、テーブルまたは結合インデックスのパーティションの変更、およびテーブルのパーティション変更に関するルールを参照してください。
実行する操作 | 指定内容 |
---|---|
NUPIをUPIへ変更 | MODIFY PRIMARY句内のMODIFY UNIQUE PRIMARYまたはPRIMARY AMP。 |
UPIをNUPIへ変更 | MODIFY PRIMARY句内のMODIFY NOT UNIQUE PRIMARYまたはPRIMARY AMP。 |
パーティション オブジェクトから非パーティション オブジェクトへの変更 | MODIFY PRIMARY句内のNOT PARTITIONED。 このテーブルは空でなければなりません。 |
非パーティション オブジェクトからパーティション オブジェクトへの変更 | MODIFY PRIMARY句内のPARTITION BY句。 このテーブルは空でなければなりません。 |
パーティション式の範囲の追加または削除 | Primary Index Change Options句内のADD RANGEまたはDROP RANGE句。ADD RANGEオプションとDROP RANGEオプションを使用したパーティションの変更を参照してください。 |
プライマリ インデックスまたは基本AMPインデックス列の追加または削除 | MODIFY PRIMARY句。 このテーブルは空でなければなりません。 |
テーブルのヘッダーの再生成と行パーティションのエラーの修正によるパーティションの検証 | REVALIDATE Options句内のREVALIDATE PRIMARY INDEX句。REVALIDATEオプションに関する一般的なルールと制約事項を参照してください。 |
テーブルを変更してUPIを付ける場合に、同じ列セットですでにUSIが定義されていると、ALTER TABLE操作中、そのUSIは自動的に削除されます。
BLOB列、CLOB列、ARRAY列、VARRAY列、PERIOD列、Geospatial列をプライマリ インデックスに組み込むことはできません。
エラー テーブルのプライマリ インデックスは変更できません。CREATE ERROR TABLEを参照してください。