目的
新しいANSI valid-timeテーブルを作成します。
構文
CREATE MULTISET TABLE table_name ( valid_start { DATE | TIMESTAMP [ ( precision ) ] [ WITH TIME ZONE ] } NOT NULL, valid_end { DATE | TIMESTAMP [ ( precision ) ] [ WITH TIME ZONE ] } NOT NULL, PERIOD FOR valid_time_period ( valid_start, valid_end ) [AS] VALIDTIME ) [;]
- table_name
- valid-timeテーブルの名前。データベース修飾子を含む場合があります。
- valid_start
- valid-time期間の開始境界を保存する列の名前。
- valid_end
- valid-time期間の終了境界を保存する列の名前。
- precision
- タイムスタンプ値の精度です。デフォルト値は6です。
- valid_time_period
- valid-time派生期間列の名前。
- [AS] VALIDTIME
- データベースでvalid-timeテーブルを作成するために必要です。
ANSI準拠
この文はANSI SQL:2011に準拠していますが、非ANSI Teradata拡張機能を含みます。
[AS] VALIDTIMEはANSI準拠ではありませんが、データベースで定義されるvalid-timeテーブルに含める必要があります。
使用上の注意
- 有効時間は、ANSIで「アプリケーション時間」と呼ばれているもののTeradataでの実装です。
- valid_start列とvalid_end列はNOT NULLとして定義する必要があります。
- valid_start列とvalid_end列のデータ型は一致していなければなりません。
- テンポラル テーブルとして機能するには、valid-timeテーブルをAS VALIDTIMEと定義する必要があります。System-timeテーブルには、有効時間はありません。
- 1つのテーブルは1つのvalid-time期間定義のみ持つことができます。
- valid-timeテーブルは、キュー、エラー、グローバル一時トレース テーブルにすることはできません。
- valid-time派生期間列で統計情報を収集することはできませんが、構成要素の開始および終了時間列で収集できます。
- アルゴリズム圧縮(ALC)は、テンポラル派生期間列の開始および終了境界値の役割を果たすDateTime列では使用できません。
例: ANSI Valid-Timeテーブルの作成
次の例で、valid-timeテーブルを作成します。
CREATE MULTISET TABLE employee_valid_time ( eid INTEGER NOT NULL, ename VARCHAR(5) NOT NULL, terms VARCHAR(5), job_start DATE NOT NULL, job_end DATE NOT NULL, PERIOD FOR job_dur(job_start,job_end) AS VALIDTIME ) PRIMARY INDEX (eid);