一般的な使用ルール - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage
CREATE TABLEのAS句を使用してコピーされるテーブル定義には、以下の一般的なルールが適用されます。
  • サブクエリーをソース定義として使用すると、ターゲット テーブルのプライマリ インデックス、プライマリ キー、または固有性制約を定義するための列セットを明示的に指定しない場合、デフォルトで、そのテーブルに定義された最初の列が非固有のプライマリ インデックスとして選択されます(プライマリ インデックス付け、行パーティション化、列パーティション化、NoPIテーブル、およびセカンダリ インデックスについてを参照)。
  • Subquery をソース定義として指定すると、式にマップされる列のデータ型は、式の結果に従います。
  • 副クエリーをソース定義として指定し、同時にWITH DATA AND STATISTICSオプションも指定すると、特別な一連のルールが適用されます。ソース テーブルの列およびインデックス セットの定義にsubquery を使用するAS … WITH DATA AND STATISTICSに関する固有のルールを参照してください。
  • AS句にソース テーブル定義として既存のテーブル(派生テーブルsubquery で定義されたのではない)を指定する場合、新しいテーブルでは、ソース テーブルのテーブル レベル特性が以下のものであることが常に前提となります。
    • 列の構造(UDT型、PERIOD型、ARRAY型、およびVARRAY型を指定された列を含む)
    • フォールバック オプション
    • ジャーナリング オプション(新しいテーブルがグローバル一時テーブルまたは揮発テーブルの場合は除きます。この場合、永久ジャーナリングはコピーない。)
    • 定義済みのすべてのインデックス(ハッシュおよび結合インデックスを除く)

      新規のインデックスがターゲット テーブルに定義されると、そのテーブルは既存のインデックスを受け入れないことに注意する必要があります。

  • AS句にソース テーブル定義として既存のテーブル(副問合せとして指定されたものではない)を指定し、同時にWITH DATA AND STATISTICSオプションも指定する場合、特別な一連のルールが適用されます。
  • パーティション プライマリ インデックス定義が新しいターゲット テーブルにコピーされ、ターゲット テーブルにインデックス定義が指定されていない場合、そのテーブルはソース テーブルと同じ方法でパーティション化されます。
  • パーティション プライマリ インデックス定義が新しいターゲット テーブルにコピーされ、インデックス定義が未指定で、ターゲット テーブルのCREATE TABLE文がパーティション列の名前を変更する場合、ターゲット テーブルのパーティション式でもこれらの列が改名されます。
  • 列属性には、以下の属性をどれでも含めることができます。
    • 列名
    • デフォルト値
    • NOT NULL制約
    • CHECK制約
    • UNIQUE制約
  • ターゲット テーブルの列の左から右への順番は、ソース テーブルで定義された順番、またはソースのsubquery 選択リストと同じになります。