16.20 - 例: Valid-TimeテーブルからのCurrent削除 - Teradata Vantage NewSQL Engine

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

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1182-162K-JPN

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;