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