例: 非テンポラル テーブルをValid-Timeテーブルに変換するALTER TABLE - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/kit1592007446534.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1186
Product Category
Software
Teradata Vantage

次のSQL文は通常の非テンポラル テーブルを作成し、行をいくつか挿入します。

CREATE MULTISET TABLE employee_vt (
 eid INTEGER NOT NULL,
 ename VARCHAR(5) NOT NULL,
 terms VARCHAR(5),
 job_start DATE NOT NULL,
 job_end DATE NOT NULL
 ) PRIMARY INDEX(eid);

行が挿入された後に、修飾されていないSELECTをテーブルに実行すると、すべての行が返されます。

SELECT * FROM employee_systime;

 eid ename terms  job_start     job_end
---- ----- ----- ---------- -----------
1002 Ash    TA05 2003/01/01  2003/12/31
1005 Alice  TW10 2004/12/01  2005/12/01
1010 Mike   TW07 2015/01/01  2016/12/31
1005 Alice  PW11 2005/12/01  9999/12/31
1001 Sania  TW08 2002/01/01  2006/12/31
1004 Fred   PW12 2001/05/01  9999/12/31
1003 SRK    TM02 2004/02/10  2005/02/10


次のALTER TABLE文でテーブルをvalid-timeテンポラル テーブルに変換します。

ALTER TABLE employee_vt
 ADD PERIOD FOR job_dur(job_start,job_end) AS VALIDTIME;

system-timeテーブルと違って、valid-timeテーブルの非修飾SELECTでは、valid-time期間が過去か、現在か、将来かに関わらず、テーブル内のすべての行が表示されます。

SELECT * FROM employee_systime;

 eid ename terms  job_start     job_end
---- ----- ----- ---------- -----------
1002 Ash    TA05 2003/01/01  2003/12/31
1005 Alice  TW10 2004/12/01  2005/12/01
1010 Mike   TW07 2015/01/01  2016/12/31
1005 Alice  PW11 2005/12/01  9999/12/31
1001 Sania  TW08 2002/01/01  2006/12/31
1004 Fred   PW12 2001/05/01  9999/12/31
1003 SRK    TM02 2004/02/10  2005/02/09


SELECT問合わせ、およびUPDATE、DELETE変更でテンポラル修飾句を使用すると、valid-timeテーブルに自動テンポラル動作が明示されます。詳細については、ANSI Valid-Timeテーブルの問合わせANSI Valid-Timeテーブルの行の変更を参照してください。