例: 単一レベル パーティション プライマリ インデックスを持つ結合インデックスの作成 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/ncd1596241368722.ditamap
dita:ditavalPath
ja-JP/ncd1596241368722.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

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

     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);