二重テンポラル テーブルの定義もvalid-timeテーブルの定義と同様に、プライマリキーおよび固有性制約を含めて、行のvalid-time期間が重ならないようにすることができます。
構文
二重テンポラル テーブルにプライマリ キーまたは固有性制約を追加するための構文は、ANSI Valid-Timeテーブルのプライマリ キーと固有性制約に示されたvalid-timeテーブルで使用されている構文と同じです。
使用上の注意
- プライマリキーまたは固有性制約を構成する列にsystem-time派生期間列を含めることはできません。
- 制約はsystem-time次元内のオープンな行にのみ適用されます。
例: ANSI二重テンポラル テーブルのテンポラルプライマリキー制約
CREATE MULTISET TABLE employee_bitemp_pk ( eid INTEGER NOT NULL, ename VARCHAR(5) NOT NULL, deptno INTEGER 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, 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 KEY(deptno,job_dur WITHOUT OVERLAPS) ) PRIMARY INDEX (eid) WITH SYSTEM VERSIONING;