17.05 - 例: NoPIテーブルを生成するCREATE … ASリクエスト - 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 source_pi (
       column_1 INTEGER
       column_2 INTEGER)
     UNIQUE PRIMARY INDEX (column_1);

また、例に対して次のNoPI テーブル定義を作成したとします。

     CREATE TABLE source_nopi (
       column_1 INTEGER
       column_2 INTEGER)
     NO PRIMARY INDEX;

次のすべてのCREATE TABLE … ASリクエストは、それぞれNO PRIMARY INDEXを明示的に指定しているため、NoPIテーブルを生成します。

     CREATE TABLE target_nopi AS
       source_pi
     WITH DATA 
     NO PRIMARY INDEX;
     CREATE TABLE target_nopi AS
       source_nopi
     WITH DATA
     NO PRIMARY INDEX;
     CREATE TABLE target_nopi AS (
       SELECT column_1, column_2
       FROM source_pi) 
     WITH DATA 
     NO PRIMARY INDEX;
     CREATE TABLE target_nopi AS (
       SELECT column_1, column_2
       FROM source_nopi) 
     WITH DATA 
     NO PRIMARY INDEX;

前の例とは異なり、次のCREATE TABLEリクエストの実行結果は、DBS制御パラメータのPrimaryIndexDefaultの設定に応じて異なります。

     CREATE TABLE target AS (
       SELECT column_1, column_2
       FROM source_nopi) 
     WITH DATA;
PrimaryIndexDefaultの値 結果として作成されるテーブル
N プライマリ インデックスなし。

NO PRIMARY INDEXを明示的に指定していない場合で、テーブルの列にPRIMARY KEY制約またはUNIQUE制約も指定していない場合、VantageはデフォルトでtargetをNoPIテーブルとして定義します。

DまたはP 非固有プライマリ インデックス。

何も指定されていない場合のテーブルのプライマリ インデックスの選択に関するルールに従って、NUPIがデフォルトで定義されます。

この場合、プライマリ インデックスはtargetに定義された最初の列(column_1)に定義されます。

targetのいずれの列についても、PRIMARY KEY制約とUNIQUE制約のいずれも定義されていないため、プライマリ インデックスはNUPIとして定義されます。