非テンポラル テーブルのコピーとしてのValid-Timeテーブルの作成 - Teradata Database - Teradata Vantage NewSQL Engine

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/avd1530664741287.ditamap
dita:ditavalPath
ja-JP/avd1530664741287.ditaval
dita:id
B035-1182
Product Category
Software
Teradata Vantage

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