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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/bud1592002688266.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.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 );