例: 列パーティション テーブルへのROW形式の列パーティションの追加
次の例では、ユーザー指定のROW形式を使用し、自動圧縮を使用しないで、2列の行パーティションを列パーティションのorders表に追加します。
ALTER TABLE orders ADD ROW(o_ship_addr VARCHAR(500), o_bill_addr VARCHAR(200)) NO AUTO COMPRESS;
これは、NULLに設定された新しい列がある次のテーブル定義を生成します。
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), o_salesperson VARCHAR(5), o_ordersubstatus CHARACTER(1) CASESPECIFIC, o_comment_ext1 VARCHAR(79), o_comment_ext2 VARCHAR(79), o_ship_addr VARCHAR(500), o_bill_addr VARCHAR(200) ) PARTITION BY (COLUMN ALL BUT((o_ o_orderstatus, o_ordersubstatus), (o_comment, o_comment_ext1, o_comment_ext2), ROW(o_ship_addr, o_bill_addr) NO AUTO COMPRESS)) ADD 3, 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);
例: 基本AMPインデックスを含むテーブルへのROW形式の2列パーティションの追加
デフォルトとして自動圧縮が適用される次のテーブル定義があるとします。
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文はデフォルトで、2列パーティションをユーザー指定のROW形式と自動圧縮を指定してテーブルに追加します。
ALTER TABLE Orders ADD ROW(o_ship_addr VARCHAR(500), o_bill_addr VARCHAR(200)) AUTO COMPRESS;
これにより、テーブル定義が次のように生成されます。
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), o_salesperson VARCHAR(5), o_ordersubstatus CHAR(1) CASESPECIFIC, o_comment_ext1 VARCHAR(79), o_comment_ext2 VARCHAR(79), o_ship_addr VARCHAR(500), o_bill_addr VARCHAR(200) ) PRIMARY AMP INDEX (o_orderkey) PARTITION BY ( COLUMN AUTO COMPRESS ALL BUT ( o_ordersubstatus NO AUTO COMPRESS, (o_comment_ext1, o_comment_ext2) NO AUTO COMPRESS, ROW(o_ship_addr, o_bill_addr) ), UNIQUE INDEX(o_orderkey);