17.05 - 例: テーブルの種類に関するCREATE TABLE … ASとCT … 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 … AS構文ではなく略されたCT … AS構文を使用する場合は、テーブルの種類を指定できません。このような制限があるため、以下の例に示すように、Vantageは自動的にターゲット テーブルの種類の定義を操作中のソース テーブルのテーブルの種類にデフォルト設定します。

デフォルトのテーブルの種類がSETになっているTeradataセッション モードで実行しているとします。

まず、定義とデータを別の名前で新しいテーブルにコピーするソース テーブルを作成します。

     CREATE MULTISET TABLE test_m (
       i INTEGER) 
     PRIMARY INDEX(i);

test_mに対してSHOW TABLE文を実行して、システムによって格納された定義をレポートします。

     SHOW TABLE test_m;

SHOW TABLEで報告される完全な テーブル定義は、ジャーナリングとCHECKSUMのデフォルトを含め、以下のようになります。

     CREATE MULTISET TABLE ARUN.test_m ,NO FALLBACK ,
          NO BEFORE JOURNAL,
          NO AFTER JOURNAL,
          CHECKSUM = DEFAULT
          (
           i INTEGER)
     PRIMARY INDEX ( i );

test_mの定義とデータを、新しいtest_m2表にコピーします。

     CREATE TABLE test_m2 AS test_m WITH DATA;

CREATE TABLE … AS構文を使用しているので、MULTISETテーブルの種類は指定できません。

test_m2に対してSHOW TABLE文を実行して、システムによって格納された定義をレポートします。

     SHOW TABLE test_m2;

結果は、以下のとおりです。

     CREATE MULTISET TABLE ARUN.test_m2 ,NO FALLBACK ,
          NO BEFORE JOURNAL,
          NO AFTER JOURNAL,
          CHECKSUM = DEFAULT
          (
           i INTEGER)
     PRIMARY INDEX ( i );

両方のテーブルに対するSHOW TABLE文のレポートは、どちらもテーブルの種類がMULTISETであることを示しているため、デフォルトのテーブルの種類がtest_mの定義からtest_m2の定義にコピーされていることを確認できます。