この方法の要件:
- 実行者にデータベースのNONTEMPORAL権限があり、データベースがこの権限を認識するように有効化されていること。NONTEMPORAL権限の詳細については、テンポラル テーブル サポートを参照してください。
- transaction-timeの開始または終了境界値でtransaction-timeテーブルが行パーティション化されている場合は使用できません。
- transaction-timeテーブルのすべての制約をメモします。
- transaction-timeテーブルからすべての制約を削除します。
- NONTEMPORAL ALTER TABLEを使用して、既存のtransaction-time列を削除します。WITHOUT DELETEオプションを使用して、履歴クローズ行を保持します。保持しないと、transaction-time列を削除したときに、これらの行も自動的に削除されます。
ALTER TABLE transaction_time_table_name DROP transaction_time_column WITHOUT DELETE
- ALTER TABLEを使用して、SYSTEM_TIME派生期間列を作成し、同じALTER TABLE文の設定済みのsys_start列とsys_end列に属性を追加します。
ALTER TABLE new_table_name ADD PERIOD FOR SYSTEM_TIME(sys_start,sys_end) ADD sys_start TIMESTAMP(6) WITH TIME ZONE NOT NULL GENERATED ALWAYS AS ROW START ADD sys_end TIMESTAMP(6) WITH TIME ZONE NOT NULL GENERATED ALWAYS AS ROW END;
- SYSTEM VERSIONINGを追加して、新しいテーブルをANSI system-timeテンポラル テーブルにします。
ALTER TABLE new_table_name ADD SYSTEM VERSIONING;
- ステップ2で削除したすべての制約を再作成します。ANSIの制約はNONSEQUENCED制約として動作することに留意してください。