ANSI Valid-Timeテーブルのプライマリ キーと固有性制約 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/ngt1556732962433.ditamap
dita:ditavalPath
ja-JP/ngt1556732962433.ditaval
dita:id
B035-1186
Product Category
Software
Teradata Vantage

目的

Valid-timeテーブル定義には、プライマリキーおよび行でvalid-time期間が重なることを防ぐ固有性制約を含めることができます。システム定義の結合インデックスは、テーブルへの変更中に制約を確認するために自動的に作成されます。

構文

{ PRIMARY KEY | UNIQUE } (
  column_list [, valid_time_period WITHOUT OVERLAPS ]
)
column_list
プライマリキーまたはテーブルの固有性制約として使用される列の名前または列のカンマ区切りのリスト。
valid_time_period
valid-time派生期間列の名前。
WITHOUT OVERLAPS
テーブルの行のvalid-time期間が重ならないように指定します。

ANSI準拠

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

使用上の注意

  • valid_time_periodWITHOUT OVERLAPSが指定されていない場合、制約は非テンポラル制約として動作し、valid-time期間が重なるかどうかに関係なく値に固有性を強制します。
  • テーブルにSYSTEM_TIME派生期間列が含まれる場合、派生期間列の開始および終了列はcolumn_listに含めることはできません。

例: Valid-Timeテーブルのテンポラルプライマリキー制約

CREATE MULTISET TABLE employee_vt_pk (
 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 KEY(deptno, job_dur WITHOUT OVERLAPS)
 )
 PRIMARY INDEX (eid);