16.20 - AS句(テーブル コピーの構文) - Teradata Database - Teradata Vantage NewSQL Engine

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-162K-JPN
Language
日本語 (日本)

ソース テーブルの列のデータ型は指定できませんが、それらの列属性は指定できます。作成するターゲット テーブルのテーブル制約も指定できます。

ターゲット テーブルに対しNORMALIZEオプションを指定することはできません。

例: テーブルの種類に関するCREATE TABLE … ASとCT … ASとの比較

コピーされたターゲット テーブル定義を作成する際に完全なCREATE TABLE … AS構文ではなく略されたCT … AS構文を使用する場合は、テーブルの種類を指定できません。このような制限があるため、以下の例に示すように、Teradata Databaseは自動的にターゲット テーブルの種類の定義を操作中のソース テーブルのテーブルの種類にデフォルト設定します。

デフォルトのテーブルの種類が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の定義にコピーされていることを確認できます。