17.05 - 例: 列パーティションからの列の削除と、その列を2列パーティションにする変更 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-175K-JPN
Language
日本語 (日本)

この例では、ordersの列パーティションから列を削除し、システム定義のCOLUMN形式と自動圧縮を使用して、パーティションが2列のパーティションになるよう変更します。

     ALTER TABLE orders 
     DROP o_comment_ext2;

これにより、次の テーブル定義が生成されます。

     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_ship_addr      VARCHAR(500),
       o_bill_addr      VARCHAR(200),
       o_alt_ship_addr  VARCHAR(500),
       o_alt_bill_addr  VARCHAR(200),
       o_item_count     INTEGER )
     PARTITION BY (COLUMN ALL BUT ((o_orderstatus, o_ordersubstatus),
                                   (o_comment, o_comment_ext1),
                        ROW(o_ship_addr, o_bill_addr) NO AUTO COMPRESS,
                        COLUMN(o_alt_ship_addr, o_alt_bill_addr)) ADD 1,
                   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);