コピーされたターゲット テーブル定義を作成する際に完全な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の定義にコピーされていることを確認できます。