transaction-time次元でオープンであり、valid-time次元で現在であるデータを二重テンポラル テーブルに挿入するには、CURRENT VALIDTIME修飾子を使用します。
次の二重テンポラル テーブルについて考えてみます。
CREATE MULTISET TABLE Policy_History( Policy_ID INTEGER, Customer_ID INTEGER, Policy_Type CHAR(2) NOT NULL, Policy_Details CHAR(40), Validity PERIOD(DATE) NOT NULL AS VALIDTIME, Policy_Duration PERIOD(TIMESTAMP(6) WITH TIME ZONE) NOT NULL AS TRANSACTIONTIME) PRIMARY INDEX(Policy_ID);
次の文は、Policy_Historyテーブルにcurrent valid-time挿入を実行します。INSERTで位置割り当てリストを使用している(列名の指定がない)ので、valid-time列の値は指定できません。transaction-time列の値はシステムによって挿入されるので、transaction-time列の値は指定できません。
CURRENT VALIDTIME INSERT INTO Policy_History VALUES (541077, 766492008, 'AU', 'STD-CH-344-YXY-00');
次の文も、Policy_Historyテーブルにcurrent valid-time挿入を実行します。INSERTで名前付きリストを使用しているので、valid-time列の値を指定できます。transaction-time列の値はシステムによって挿入されるので、transaction-time列の値は指定できません。
CURRENT VALIDTIME INSERT INTO Policy_History (Policy_ID, Customer_ID, Policy_Type, Policy_Details, Validity) VALUES (541145, 616035020, 'AU', 'STD-CH-348-YXN-01', PERIOD '(2009-12-03, 2010-12-01)');