16.20 - ANSI二重テンポラル テーブルの行の変更 - Teradata Vantage NewSQL Engine

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

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

システム時間と有効時間は独立した次元であるため、二重テンポラル テーブルを変更すると、それぞれの次元が個別に影響を受けます。二重テンポラル テーブルの動作を理解するには、各次元を単独で変更した場合の結果について検討してみると便利です。

system-time次元の動作は、次のようになります。

  • 既存の行を変更すると、元の行がクローズ行としてマークされ、system-time期間の終了値に変更時間を反映するタイムスタンプが設定されます。
    • 変更が削除であった場合は、システム時間に関連してテーブルに新しい行が追加されることはありません。
    • 変更によって行の情報が更新された場合は、テーブルに新しい行が自動的に挿入されて新しい情報が反映されます。元の行はクローズ行としてマークされ、システム時間は変更された時刻に終了となります。
      system-timeおよびvalid-time次元は独立しているため、行に対するvalid-timeのテンポラル変更は、システム時間については非テンポラル変更と同じように処理されます。このような変更を行なった場合、元の未変更の行はシステム時間内にクローズし、変更前のテーブルの存続方法を記録したものとしてテーブルに格納されます。
  • テーブルに行が挿入された場合、system-time期間の開始境界には挿入時間がタイムスタンプとして設定され、終了境界は9999-12-31 12:59:59:999999+00:00としてマークされます。
  • 二重テンポラル テーブルでは、system-timeテーブルのように、クローズ行がほとんどのSQL操作に関与することはありません。クローズ行はテーブルから削除されたものとみなされるためです。

valid-time次元の場合、変更結果は変更のPAと行のPVの関係によって決まります。

  • PAがPVの一部と重なっている場合、新しい行がテーブルに自動的に挿入されて、新しい情報が反映されます。PAおよびPVの重なり具合に応じて、新しい行のPVは元の行と同じ有効時間に開始または終了します。その他のvalid-time境界には変更の日付またはタイムスタンプが自動的に設定されます。
  • PAが行のPV内に収まっている場合は2つの新しい行が生成され、変更前と変更後両方の行の元の状態に加えて、変更後の行を反映する行がテーブルに格納されます。
  • PAが行のPVと完全に重なっている場合は、非テンポラル変更と同じように変更されます。
二重テンポラル テーブル内でDELETEおよびUPDATEによる変更の影響を受けるのは、システム時間内にまだオープンしている行のみです。