例: テンポラル テーブルを以前の状態に復元 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/cjo1556732840654.ditamap
dita:ditavalPath
ja-JP/cjo1556732840654.ditaval
dita:id
B035-1182
Product Category
Software
Teradata Vantage

テーブルをtime Xの時点の状態に戻すには、次の計画を使用します。

time Xの時点の行

現時点の行との比較

計画
1 行はtime Xの時点で存在し、現時点でも存在する。 行はそのままにする。
2 行はtime Xの時点で存在し、現時点でも存在する。 行はそのままにする。
3 行はtime Xの時点には存在しなかった。 行を削除する。
4 行はtime Xの時点でクローズされていて、現時点でもクローズされている。 行はそのままにする。
5 行はtime Xの時点でクローズされていて、現時点でもクローズされている。 行はそのままにする。
6 行はtime Xの時点でオープンだったが、現時点ではクローズされている。 BEGIN(TT)はそのままにする。

END(TT)はUNTIL_CLOSEDに更新する。

7 行はtime Xの時点でオープンだったが、現時点ではクローズされている。 BEGIN(TT)はそのままにする。

END(TT)はUNTIL_CLOSEDに更新する。

8 行はtime Xの時点で存在しなかった。 行を削除する。

次のSQLは、それぞれ異なる行の状態に対する計画を具体化したものです。

NONTEMPORAL DELETE  tt_table  where BEGIN(tt_col) >  time X;
NONTEMPORAL UPDATE  tt_table 
  SET  tt_col  = PERIOD(BEGIN(tt_col), UNTIL_CLOSED)
  WHERE END(tt_col) IS NOT UNTIL_CLOSED
  AND   BEGIN(tt_col) <=  time X 
  AND   END(tt_col) >  time X;
このソリューションにはNONTEMPORAL SQLが必要になるため、DBS制御ユーティリティを使用して、テンポラル テーブルに対する非テンポラル操作を有効にする必要があります。さらに、このSQLを実行するユーザーには、NONTEMPORAL権限が付与されている必要があります。DBS制御について、詳細はTeradata Vantage™ - データベース ユーティリティ、B035-1102を参照してください。NONTEMPORAL操作の詳細については、NONTEMPORAL権限を参照してください。