16.20 - CREATE TABLE (ANSI System-Time テーブル フォーム) - Teradata Vantage NewSQL Engine

Teradata Vantage™ ANSIテンポラル テーブル サポート

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1186-162K-JPN

目的

新しいANSI system-timeテーブルを作成します。

構文



table_name
system-timeテーブルの名前。データベース修飾子を含む場合があります。
sys_start
system-time期間の開始境界を保存する列の名前。
GENERATED ALWAYS AS ROW START
system-time期間の開始境界を定義する列の必須属性。
sys_end
system-time期間の終了境界を保存する列の名前。
GENERATED ALWAYS AS ROW END
system-time期間の終了境界を定義する列の必須属性。
PERIOD FOR SYSTEM_TIME
system-time派生期間列を作成します。
SYSTEM VERSIONING
system-timeテンポラル テーブルの必須属性。CREATE TABLE文の最後の句でなければなりません。

ANSI準拠

この文は、ANSI SQL:2011に準拠しています。

使用上の注意

  • sys_start列は、NOT NULLおよびGENERATED ALWAYS AS ROW STARTとして定義する必要があります。sys_end列はNOT NULLおよびGENERATED ALWAYS AS ROW ENDとして定義する必要があります。
  • GENERATED ALWAYS AS ROW STARTまたはEND属性は、SYSTEM_TIME派生期間列を構成する列の定義から削除することはできません。
  • system-time派生期間列の構成要素列は、プライマリインデックスの一部にすることはできません。
  • テンポラル テーブルとして機能するには、WITH SYSTEM VERSIONINGでsystem-timeテーブルを定義する必要があります。(Valid-timeテーブルにはシステムのバージョン情報がありません。)
  • 1つのテーブルは1つのsystem-time期間定義のみ持つことができます。
  • system-timeテーブルは、キュー、エラー、グローバル一時、グローバル一時トレース、または揮発テーブルにすることはできません。
  • システム時間によるテーブルのCHECK制約にsystem-time期間の開始列または終了列を含むことはできません。
  • system-time期間の開始列および終了列は、テンポラル参照制約のプライマリキーまたは外部キーにすることはできません。
  • System-timeテーブルは、CREATE TABLE AS文でソース テーブルの役割を果たすことはできません。
  • system-time派生期間列で統計情報を収集することはできませんが、構成要素の開始および終了時間列で収集できます。
  • アルゴリズム圧縮(ALC)は、テンポラル派生期間列の開始および終了境界値の役割を果たすDateTime列では使用できません。

例: System-Timeテーブルの作成

次の例ではsystem-timeテーブルを作成して、このテーブルをテンポラル テーブルにするために必要なsystem versioning句が含まれます。

CREATE MULTISET TABLE employee_system_time (
 eid INTEGER NOT NULL,
 name VARCHAR(10)NOT NULL,
 deptno INTEGER NOT NULL,
 sys_start TIMESTAMP(6) WITH TIME ZONE NOT NULL 
           GENERATED ALWAYS AS ROW START,
 sys_end TIMESTAMP(6) WITH TIME ZONE NOT NULL 
           GENERATED ALWAYS AS ROW END,
 PERIOD FOR SYSTEM_TIME(sys_start, sys_end)
 )
 PRIMARY INDEX (eid) WITH SYSTEM VERSIONING;