current削除を実行するには、DELETE文にCURRENT VALIDTIME修飾子を使用します。
有効時間を含むテーブルでは、現在行が削除対象となります。対象行の有効期間と、そのテーブルでトランザクション時間もサポートしているかどうかに応じて、削除操作で物理的に行が削除されるか、論理的に行が削除されるか、行の有効期間が変更されるか、または論理的に行が削除されて新しい行が作成されるかが決まります。Policyテーブルに含まれる次のデータについて考えてみましょう。
NONSEQUENCED VALIDTIME SELECT Policy_ID, Customer_ID, Validity FROM Policy WHERE Policy_Type = 'AU'; Policy_ID Customer_ID Validity --------- ----------- ------------------------ 497201 304779902 ('05/02/14', '06/02/13') 540944 123344567 ('07/02/03', '08/02/02') 541077 766492008 ('09/12/21', '99/12/31') 541145 616035020 ('09/12/03', '10/12/01') 541008 246824626 ('09/10/01', '99/12/31')
TEMPORAL_DATEの値は次のとおりと仮定します。
SELECT TEMPORAL_DATE; Temporal Date ------------- 09/12/21
次のCURRENT DELETE文は、対象行をテーブルから物理的に削除します。これは、有効期間の開始境界値がTEMPORAL_DATEと等しいためです。
CURRENT VALIDTIME DELETE FROM Policy WHERE Policy_ID = 541077;