トランザクション時間でクローズされた行は、transaction-time列を含むテーブルについてのすべての変更および削除の履歴を提供します。トランザクション時間を含むテーブルが提供する自動履歴は、法規制順守の監査目的で使用されることがあります。そのため、通常は、そのような行に対するDML変更は制限されています。NONTEMPORAL DML文を使用するとクローズ行の変更が可能になるため、特別なNONTEMPORAL権限が必要になります。NONTEMPORAL権限の詳細については、NONTEMPORAL権限を参照してください。
非テンポラル更新は従来型の更新と同様のものですが、transaction-time列をテーブル内の他の列と同じように扱います。transaction-time列の値は、この文のSET句に明示的に指定できます。非テンポラル更新は、クローズ行またはオープン行を更新するために発行できます。
UPDATE文内の条件は、テーブル内のオープン行とクローズ行の両方が対象になります。さらに、有効時間を含むテーブルの場合は、有効行と非有効行の両方が更新に関与します。文で複数のテンポラル テーブルを参照する場合には、そのテーブルに対するnonsequenced形式の結合が実行されます。
transaction-time列を変更する場合には、次のルールが適用されます。
- 開始境界値は、更新時点でのシステム時間よりも大きくしてはいけません。
- 終了境界値は、UNTIL_CLOSEDにするか、更新時点でのシステム時間以下にする必要があります。