17.10 - 例: 列リスト内にUDT列を持つハッシュ インデックス - Advanced SQL Engine - Teradata Database

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

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

次の例は、ハッシュ インデックスに使用するUDT列をcolumn_name_list1column_name_list2、およびcolumn_name_list3に指定する方法を示します。

最初に、サンプルの列に使用するUDTを定義します。

TBL_INTEGERはINTEGERデータ型に基づくDISTINCT型UDTです。

     CREATE TYPE TBL_INTEGER AS INTEGER FINAL;

TBL_CHAR50もDISTINCT型UDTで、CHARACTERデータ型に基づきます。

     CREATE TYPE TBL_CHAR50 AS CHARACTER(50) FINAL;

次のテーブルを定義したとします。

     CREATE TABLE t1_hash_index (
       id       TBL_INTEGER, 
       emp_name TBL_CHAR50) 
     PRIMARY INDEX(id);

最初のハッシュ インデックス定義は、3つの列リストすべてにUDT列emp_nameを指定します。

     CREATE HASH INDEX tb_index_1 (emp_name) 
     ON t1_hashindex 
     BY (emp_name) 
     ORDER BY HASH (emp_name);

2番目のハッシュ インデックス定義は、column_name_1リストにUDT列emp_nameを指定します。

この例は、BY句もORDER BY句も定義せずに有効なハッシュ インデックスを作成する方法と、ハッシュ インデックスを定義した基本テーブルのプライマリ インデックスがUDT列に作成されている場合に基本テーブルのプライマリ インデックスのハッシュによってハッシュ インデックスの行を分散する方法を示します。

     CREATE HASH INDEX tb_index_2 (emp_name) 
     ON t1_hashindex;