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