Teradataは、ANSI/ISO規格が開発される前に、テンポラル テーブルの作成と操作のサポートを導入しました。そのため、元のTeradataテンポラル テーブルとSQL構文はANSI規格に準拠していません。テンポラル テーブルのANSI/ISO規格が承認されたとき、Teradataは、新しいANSI準拠のテンポラル テーブルとSQL構文を開発しました。
Vantageでは、ANSI準拠バージョンのテンポラル テーブルと、元のANSI非準拠バージョンのテンポラル テーブルが使用できます。
以下の比較を使用すると、実際の要件に最適なテンポラル テーブルのバージョンを決定するのに役立ちます。
Teradataの独自テンポラル テーブルで使用されるほとんどのテンポラル修飾子と問合わせ構文は、ANSIテンポラル テーブルでも使用できます。
ANSIのテンポラル テーブルと構文 | Teradataテンポラル テーブルと構文 |
---|---|
ANSI/ISO準拠で、valid-time (application-time)テーブル定義およびTeradata拡張機能に多少の変更があり、valid-timeテーブルのテンポラル問合わせを許可します。 | ANSI/ISO準拠ではありません。 |
テンポラル テーブルのテンポラル列は、派生期間の開始境界値と終了境界値を格納している物理的なDateTime列から動的に派生します。 | テンポラル列は、派生期間であるか、TeradataのPERIODデータ型を使用する場合があります。これにより、列は期間を表わすことができます。(PERIODデータ型を使用することは許可されていますが、推奨されてはいません。) |
テンポラル派生期間列を構成する開始列と終了列は、常に暗黙的にSELECT *の問合わせに射影されます。 | テンポラル派生期間列を構成するテンポラル列または開始列と終了列が射影されるかどうかは、セッションでデフォルトとして設定されているテンポラル問合わせ修飾子またはテンポラル修飾子によって決まります。 |
system-timeテーブルで、SYSTEM_TIME派生期間列のコンポーネント開始および終了タイムスタンプ列は、最初にテーブルからシステムのバージョン設定を削除した場合にのみ変更できます。system-timeテーブルからシステムのバージョン設定を削除すると、テーブルからすべてのクローズ行が物理的に削除され、テーブルは非テンポラル テーブルになります。 | transaction-timeテーブル(ANSI system-timeテーブルと似ている)では、特殊NONTEMPORAL権限および修飾子によって、transaction-time列値を変更できます。 |
SELECTのデフォルト動作は、valid-timeテーブルのすべての行を選定することです。デフォルトの動作をセッション修飾子で変更することはできません。 | SELECTのデフォルト動作は、valid-timeテーブルの現在の行のみを選定することです。デフォルトの動作は、セッション修飾子で変更できます。 |