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

非テンポラル テーブルまたはtransaction-timeテーブルにvalid-time列を追加するには、ALTER TABLE文を使用します。

テンポラル テーブルは、固有プライマリ インデックスを持つことはできません。元の非テンポラル テーブルに固有プライマリ インデックスがある場合、テンポラル列を追加する前に、ALTER TABLEを使用してプライマリ インデックスを非固有に変更してください。テンポラル テーブルに対する固有性は、他の制約を使用して適用できます。詳細については、テンポラル テーブルに対する制約の使用を参照してください。

例: PERIODデータ型valid-time列の追加

継続時間データを含んでいない以下の非テンポラル テーブルの定義について検討します。

   CREATE MULTISET TABLE Customer (
      Customer_Name VARCHAR(40),
      Customer_ID INTEGER,
      Customer_Address VARCHAR(80),
      Customer_Phone VARCHAR(12)
      )
   PRIMARY INDEX (Customer_ID);

次の文は、Customerテーブルにvalid-time列を追加します。

   ALTER TABLE Customer
   ADD Customer_Validity PERIOD(DATE) AS VALIDTIME;

PERIOD列のValid-Time列への変換

PERIOD列を定義するテーブルがある場合、次の手順を実行して既存のPERIOD列をvalid-time列に変換します。
  1. テーブルに対するすべての制約情報をメモします。
  2. すべての制約を削除します。
  3. ALTER TABLEを使用して、新しいvalid-time列を追加します。
  4. NONSEQUENCED VALIDTIME更新を実行し、既存のPERIOD列の値で新しいvalid-time列を設定します。
  5. ALTER TABLEを使用して、既存のPERIOD列をテーブルから削除します。
  6. ALTER TABLEを使用して、valid-time列の名前を削除した列の名前に変更します。
  7. 事前に削除したすべての制約を、目的に合ったvalid-time修飾子を使用して作成します。