テーブルの種類によって重複行の制御が決まります。 参照整合性ルールについては、<Teradata Vantage™ - SQLデータ定義言語 - 詳細トピック、B035-1184>を参照してください。テーブルはグローバル一時テーブルまたは揮発テーブルとして作成することができます。 グローバル一時テーブルまたは揮発テーブルのいずれかを指定しない場合、テーブルは永続的なユーザー データ テーブルとして定義され、基本テーブルとも呼ばれます。 ハッシュおよび結合インデックス テーブルも基本テーブルとみなされます。
SETまたはMULTISETを明示的に指定しない場合、テーブルの種類の割り当ては次のようにセッション モードによって決まります。
セッション モード | デフォルト |
---|---|
ANSI | MULTISET |
Teradata | SET |
セッション モード デフォルトは、次の場合を除いて有効です。
- CREATE TABLE AS構文の副問合わせではない形式を使用してテーブル定義をコピーする場合。デフォルトのテーブルの種類は、現行のセッション モードとは関係なく、ソース テーブルのテーブルの種類になります。
- 列パーティション テーブルを作成する場合。デフォルトのテーブルの種類は、セッション モードや、DBS制御パラメータPrimaryIndexDefaultの設定とは関係なく、常にMULTISETになります。
- MULTISET
- ANSI SQL:2011規格に準拠して、重複行が許可されます。テーブルの定義で、列または一連の列に固有性制約がある場合には、MULTISETを宣言しても、そのテーブルに重複行を含めることはできません。Vantageでは、NoPIテーブルおよび列パーティション テーブルを、デフォルトではMULTISETテーブルとして作成します。
- SET
- 重複行は許可されません。次の種類のテーブルは、SETテーブルとして作成することはできません。
- テンポラル
- 列パーティション
- NoPI
- GLOBAL TEMPORARY
- 一時テーブルの定義が作成され、将来の実体化のためにデータ ディクショナリに格納されます。テーブルをWITH NO DATAでコピーする場合はグローバル一時テーブルを作成できますが、WITH DATAでテーブルをコピーする場合は作成できません。
- VOLATILE
- 揮発テーブルを作成します。その定義は、この構文要素が定義されたセッションの間だけメモリ内に保持される揮発テーブルです。領域の使用は、ログイン ユーザーのスプール領域に課されます。揮発テーブルは、それを作成したセッションに専用のものであるため、作成、アクセス、変更、および削除の各権限のチェックはシステムによって実行されません。単一のセッションで実体化できる揮発テーブルの数は1,000個までです。