17.05 - 例: 単一レベル パーティション プライマリ インデックスを持つ結合インデックスの作成 - 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
日本語 (日本)

次の基本テーブル定義を考えます。

     CREATE TABLE orders (
       o_orderkey      INTEGER NOT NULL,
       o_custkey       INTEGER,
       o_orderstatus   CHARACTER(1) CASESPECIFIC,
       o_totalprice    DECIMAL(13,2) NOT NULL,
       o_orderdate     DATE FORMAT 'yyyy-mm-dd' NOT NULL,
       o_orderpriority CHARACTER(21),
       o_clerk         CHARACTER(16),
       o_shippriority  INTEGER,
       o_comment       VARCHAR(79))
     UNIQUE PRIMARY INDEX (o_orderkey, o_orderdate);

次のSQLテキストは、ordersという名前の基本テーブルについて、単一レベルPPI結合インデックスを作成します。o_totalprice列のデータ型はDECIMAL(13,2)なので、o_totalprice値はINTEGER型で処理できる以上の桁数を保持できます。そのため、o_totalpriceに値を挿入すると、ordJI1の定義によってo_totalprice値はパーティション式にINTEGER値としてキャストされ、そのためにエラーが表示されることがあります。

     CREATE JOIN INDEX ordJI1 AS 
       SELECT o_custkey, o_totalprice 
       FROM orders 
     PRIMARY INDEX (o_custkey)
     PARTITION BY RANGE_N(CAST(o_totalprice AS INTEGER)
                  BETWEEN  0 
                  AND 999999 
                  EACH   100, NO RANGE);