16.20 - 例: 二重テンポラル テーブルへのCurrent Valid-Time挿入 - Teradata Vantage NewSQL Engine

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

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

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)');