例: プライマリ インデックスを持たないようテーブルを変更する
次の例では、orders表のすべての行を削除して、プライマリ インデックスを持たないようテーブルを変更し、列パーティションと行パーティションの両方を追加して、セカンダリ インデックスを追加します。
DELETE orders ALL; ALTER TABLE orders MODIFY NO PRIMARY INDEX PARTITION BY (COLUMN ADD 5, RANGE_N(o_ordertsz BETWEEN TIMESTAMP '2003-01-01 00:00:00.000000+00:00' AND TIMESTAMP '2009-12-31 23:59:59.999999+00:00' EACH INTERVAL '1' MONTH) ); CREATE UNIQUE INDEX(o_orderkey) on orders;
これは、ordersに対して次の テーブル定義を生成します。
CREATE TABLE orders ( o_orderkey INTEGER NOT NULL, o_custkey INTEGER, o_orderstatus CHARACTER(1) CASESPECIFIC, o_totalprice DECIMAL(13,2) NOT NULL, o_ordertsz TIMESTAMP(6) WITH TIME ZONE NOT NULL, o_comment VARCHAR(79) ) PARTITION BY (COLUMN ADD 5, RANGE_N(o_ordertsz BETWEEN TIMESTAMP '2003-01-01 00:00:00.000000+00:00' AND TIMESTAMP '2009-12-31 23:59:59.999999+00:00' EACH INTERVAL '1' MONTH) ), UNIQUE INDEX(o_orderkey);
例: プライマリ インデックスを持たない(NoPI)ように基本AMPインデックス テーブルを変更する
この例では、次のテーブル定義を使用します。
CREATE TABLE Orders ( o_orderkey INTEGER NOT NULL, o_custkey INTEGER, o_orderstatus CHAR(1) CASESPECIFIC, o_totalprice DECIMAL(13,2) NOT NULL, o_ordertsz TIMESTAMP(6) WITH TIME ZONE NOT NULL, o_comment VARCHAR(79) ) PRIMARY AMP INDEX (o_orderkey) PARTITION BY COLUMN UNIQUE INDEX (o_orderkey);
次のALTER TABLE文を実行します。
ALTER TABLE Orders MODIFY NO PRIMARY INDEX;
次のテーブルの結果:
CREATE TABLE Orders ( o_orderkey INTEGER NOT NULL, o_custkey INTEGER, o_orderstatus CHAR(1) CASESPECIFIC, o_totalprice DECIMAL(13,2) NOT NULL, o_ordertsz TIMESTAMP(6) WITH TIME ZONE NOT NULL, o_comment VARCHAR(79) ) NO PRIMARY INDEX PARTITION BY COLUMN UNIQUE INDEX (o_orderkey);