16.20 - 非テンポラル テーブルのコピーとしての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

既存の非テンポラル テーブルのコピーとしてvalid-timeテーブルを作成するには、CREATE TABLE … AS (CREATE TABLEのCopy Table形式)を使用します。AS句には、有効時間を含むテーブルを返すテンポラル問合わせを指定します。

例: 非テンポラル テーブルのコピーとしてvalid-timeテーブルを作成

次の非テンポラル テーブルがあるとします。

   CREATE TABLE Policy_NT (
      Policy_ID INTEGER,
      Customer_ID INTEGER,
      Policy_Type CHAR(2) NOT NULL,
      Policy_Details CHAR(40)
      )
   PRIMARY INDEX(Policy_ID);

valid-timeテーブルとしてPolicy_NTテーブルのコピーを作成するには、CREATE TABLEのAS句でnonsequenced問合わせを使用します。SELECTには、有効時間の適用期間を修飾子として指定します。これにより生成されるvalid-timeテーブルは、各行の有効期間が問合わせに使用した適用期間に設定されます。

   CREATE MULTISET TABLE Policy(
      Policy_ID,
      Customer_ID,
      Policy_Type,
      Policy_Details,
      Validity
      ) AS (
      NONSEQUENCED VALIDTIME PERIOD '(2009-01-01, UNTIL_CHANGED)'
      SELECT *
      FROM Policy_NT)
   WITH DATA
   PRIMARY INDEX(Policy_ID);
生成されるPolicyテーブルには、Validityという名前のvalid-time列が含まれます。
   SHOW TABLE Policy;

   CREATE MULTISET TABLE Policy ,NO FALLBACK ,
      NO BEFORE JOURNAL,
      NO AFTER JOURNAL,
      CHECKSUM = DEFAULT,
      DEFAULT MERGEBLOCKRATIO
      (
      Policy_ID INTEGER,
      Customer_ID INTEGER,
      Policy_Type CHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
      Policy_Details CHAR(40) CHARACTER SET LATIN NOT CASESPECIFIC,
      Validity PERIOD(DATE) AS VALIDTIME)
   PRIMARY INDEX ( Policy_ID );