16.20 - 例: テンポラル テーブルを以前の状態に復元 - Teradata Vantage NewSQL Engine

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

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

テーブルを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権限を参照してください。