非テンポラル テーブルまたは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列に変換します。
- テーブルに対するすべての制約情報をメモします。
- すべての制約を削除します。
- ALTER TABLEを使用して、新しいvalid-time列を追加します。
- NONSEQUENCED VALIDTIME更新を実行し、既存のPERIOD列の値で新しいvalid-time列を設定します。
- ALTER TABLEを使用して、既存のPERIOD列をテーブルから削除します。
- ALTER TABLEを使用して、valid-time列の名前を削除した列の名前に変更します。
- 事前に削除したすべての制約を、目的に合ったvalid-time修飾子を使用して作成します。