プライマリ インデックスまたは基本AMPインデックスを追加または変更します。MODIFYオプションを含む同じALTER TABLE文では、基本テーブル パラメータを変更することも、テーブルまたは結合インデックスを再検証することもできません。
- index_name
- 名前のないプライマリ インデックスの命名、またはプライマリ インデックスの名前の変更。データベース オブジェクトの命名については、<Teradata Vantage™ SQL基礎、B035-1141>を参照してください。
- (index_column_name)
- テーブルのプライマリ インデックスのプロパティを変更します。複合プライマリ インデックスの場合、index_column_nameは、すべてのインデックス列を括弧で囲んだカンマ区切りのリストを示します。プライマリ インデックスの派生PERIOD列の開始列と終了列を指定することはできません。テーブルは空である必要があります。
- AMP
- 行は、列パーティション テーブルまたは結合インデックス用に、各AMPにハッシュ分散されます。列パーティション値はそれぞれのAMP上で、内部パーティション番号と列パーティション テーブルまたは結合インデックス用の行ハッシュによって順序付けられます。
- INDEX
- PRIMARY INDEX句およびPARTITION BY句が指定される場合、列パーティション レベルがPARTITION BY句に含まれることがあります。PARTITION BY句はPRIMARY INDEX指定に含めることも、単独でインデックス リストに含めることもできます。PARTITION BY句には、行パーティション レベルを含めることができます。
- NOT NAMED
- 名前付きインデックスの名前を削除します。
- UNIQUE
- 非固有プライマリ インデックスを固有プライマリ インデックスに変更します。テーブルは空になっている必要があります。
- NOT UNIQUE
- 固有プライマリ インデックスを非固有プライマリ インデックスに変更します。テーブルは空である必要があります。
例: プライマリ インデックス テーブルをプライマリ インデックス列パーティション テーブルに変更する
この例では、次のテーブル定義を変更します。
CREATE TABLE pi3 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY INDEX (a);
空のテーブルに対し次のいずれかのALTER TABLE文を実行します。
ALTER TABLE pi3 MODIFY PARTITION BY COLUMN;
ALTER TABLE pi3 MODIFY PRIMARY INDEX PARTITION BY COLUMN;
ALTER TABLE pi3 MODIFY PRIMARY INDEX (a) PARTITION BY COLUMN;
次のテーブル定義の結果:
CREATE TABLE pi3 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY INDEX (a) PARTITION BY COLUMN;
例: プライマリ インデックス テーブルをプライマリ インデックス列パーティションRPテーブルに変更する
この例では、次のテーブル定義を変更します。
CREATE TABLE pi4 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY INDEX (a);
空のテーブルに対し次のいずれかのALTER TABLE文を実行します。
ALTER TABLE pi4 MODIFY PARTITION BY (COLUMN, RANGE_N(b BETWEEN 1 AND 10 EACH 1));
ALTER TABLE pi4 MODIFY PRIMARY INDEX PARTITION BY (COLUMN, RANGE_N(b BETWEEN 1 AND 10 EACH 1));
ALTER TABLE pi4 MODIFY PRIMARY INDEX (a) PARTITION BY (COLUMN, RANGE_N(b BETWEEN 1 AND 10 EACH 1));
次のテーブル定義の結果:
CREATE TABLE pi4 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY INDEX (a) PARTITION BY (COLUMN, RANGE_N(b BETWEEN 1 AND 10 EACH 1));
例: プライマリ インデックス列パーティション テーブルを基本AMPインデックス列パーティション テーブルに変更する
この例では、次のテーブル定義を使用します。
CREATE TABLE p8 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY INDEX (a) PARTITION BY COLUMN;
空のテーブルに対し次のいずれかのALTER TABLE文を実行します。
ALTER TABLE p8 MODIFY PRIMARY AMP INDEX;
ALTER TABLE p8 MODIFY PRIMARY AMP INDEX (a);
ALTER TABLE p8 MODIFY PRIMARY AMP INDEX (a) PARTITION BY COLUMN;
次のテーブル定義の結果:
CREATE TABLE p8 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY AMP INDEX (b) PARTITION BY COLUMN;
例: プライマリ インデックス列パーティション テーブルをNoPI列パーティション テーブルに変更する
この例では、次のテーブル定義を使用します。
CREATE TABLE p9 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY INDEX (a) PARTITION BY COLUMN;
次のいずれかのALTER TABLE文を空のテーブルに対して実行します。
ALTER TABLE p9 MODIFY NO PRIMARY INDEX;
ALTER TABLE p9 MODIFY NO PRIMARY INDEX PARTITION BY COLUMN;
次のテーブル定義の結果:
CREATE TABLE p9 (a INTEGER, b INTEGER, c CHAR(10)) NO PRIMARY INDEX PARTITION BY COLUMN;
例: プライマリ インデックス テーブルを基本AMPインデックス列パーティション テーブルに変更する
この例では、次のテーブル定義を使用します。
CREATE TABLE p11 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY INDEX (a);
次のいずれかのALTER TABLE文を空のテーブルに対して実行します。
ALTER TABLE p11 MODIFY PRIMARY AMP INDEX PARTITION BY COLUMN;
ALTER TABLE p11 MODIFY PRIMARY AMP INDEX (a) PARTITION BY COLUMN;
次のテーブル定義の結果:
CREATE TABLE p11 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY AMP INDEX (a) PARTITION BY COLUMN;
例: プライマリ インデックス テーブルを異なるインデックス列を持つ基本AMPインデックス列パーティション テーブルに変更する
この例では、次のテーブル定義を使用します。
CREATE TABLE p12 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY INDEX (a);
空のテーブルに対し次のALTER TABLE文を実行します。
ALTER TABLE p12 MODIFY PRIMARY AMP INDEX (b) PARTITION BY COLUMN;
次のテーブル定義の結果:
CREATE TABLE p12 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY AMP INDEX (b) PARTITION BY COLUMN;
例: 基本AMPインデックス列パーティション テーブルをプライマリ インデックス非パーティション テーブルに変更する
この例では、次のテーブル定義を使用します。
CREATE TABLE pt3 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY AMP INDEX (a) PARTITION BY COLUMN;
次のいずれかのALTER TABLE文を空のテーブルに対して実行します。
ALTER TABLE pt3 MODIFY PRIMARY INDEX (a) NOT PARTITIONED;
ALTER TABLE pt3 MODIFY PRIMARY INDEX NOT PARTITIONED;
次のテーブル定義の結果:
CREATE TABLE pt3 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY INDEX (a);
例: 基本AMPインデックス列パーティション テーブルをプライマリ インデックス列パーティション テーブルに変更する
この例では、次のテーブル定義を使用します。
CREATE TABLE pt4 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY AMP INDEX (a) PARTITION BY COLUMN;
次のいずれかのALTER TABLE文を空のテーブルに対して実行します。
ALTER TABLE pt4 MODIFY PRIMARY INDEX (b);
ALTER TABLE pt4 MODIFY PRIMARY INDEX (b) PARTITION BY COLUMN;
次のテーブル定義の結果:
CREATE TABLE pt4 (a INTEGER, b INTEGER, c CHAR(10)) PRIMARY INDEX (b) PARTITION BY COLUMN;