例: Valid-Time列の削除 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/cjo1556732840654.ditamap
dita:ditavalPath
ja-JP/cjo1556732840654.ditaval
dita:id
B035-1182
Product Category
Software
Teradata Vantage

valid-timeテーブルからvalid-time列を削除するには、ALTER TABLE文を使用します。

次のvalid-timeテーブルについて考えてみます。

   CREATE MULTISET TABLE Customer (
      Customer_Name VARCHAR(40),
      Customer_ID INTEGER,
      Customer_Address VARCHAR(80),
      Customer_Phone VARCHAR(12),
      Customer_Validity PERIOD(DATE) NOT NULL AS VALIDTIME
      )
   PRIMARY INDEX ( Customer_ID );

次の文はCustomer_Validity列を削除します。

   ALTER TABLE Customer DROP Customer_Validity;

二重テンポラル テーブルからvalid-time列を削除するには、ALTER TABLE文を使用して、NONTEMPORAL修飾子を指定します。二重テンポラル テーブルからどのようなタイプの列を削除する場合でも、そのテーブルに対するNONTEMPORAL権限が必要になります。また、ALTER TABLEにNONTEMPORAL修飾子を使用する必要があります。

次の二重テンポラル テーブルについて考えてみます。

   CREATE MULTISET TABLE Customer (
      Customer_Name VARCHAR(40),
      Customer_ID INTEGER,
      Customer_Address VARCHAR(80),
      Customer_Phone VARCHAR(12),
      Customer_Validity PERIOD(DATE) NOT NULL AS VALIDTIME,
      Customer_Duration PERIOD(TIMESTAMP(6) WITH TIME ZONE) NOT NULL
         AS TRANSACTIONTIME
      )
   PRIMARY INDEX ( Customer_ID );

次の文はCustomer_Validity列を削除します。

   NONTEMPORAL ALTER TABLE Customer DROP Customer_Validity;

二重テンポラル テーブルからvalid-time列が削除されると、すべての非有効行(valid-time次元ではすべての履歴行)がテーブルから物理的に削除されます。