ROW CHANGE 式

ROW CHANGE 式は、行に対する最終変更を表すトークンまたはタイム・スタンプを戻します。

row-change-expression
Read syntax diagramSkip visual syntax diagramROW CHANGETOKENTIMESTAMPFORtable-designator
トークン
行の変更シーケンス内での相対点を表す BIGINT 値を戻すことを指定します。 行が変更されていない場合、結果は初期値が挿入されたときを表すトークンとなります。 結果は NULL 値の場合もあります。 ROW CHANGE TOKEN は、決定論的ではありません。
TIMESTAMP
行が最後に変更されたときを表す TIMESTAMP を戻すことを指定します。 行が変更されていない場合、結果は初期値が挿入された時刻となります。 結果は NULL 値の場合もあります。 ROW CHANGE TIMESTAMP は、決定論的ではありません。
FOR 表指定子
式が参照される表を識別します。 table-designator は、基本表、ビュー、 またはネストされた表の式を一意的に識別する必要があります (SQLSTATE 42867)。 table-designator がビューまたはネストされた表の式を識別する場合、 ビューまたはネストされた表の式の基本表の ROW CHANGE 式は TOKEN または TIMESTAMP を戻します。 ビューまたはネストされた表の式は、 外部副選択に 1 つだけの基本表を含んでいる必要があります (SQLSTATE 42867)。 table-designator がビューまたはネストされた表の式の場合は、削除可能でなければなりません (SQLSTATE 42703)。 削除可能なビューについては、 CREATE VIEWの「 」セクションを参照してください。 ROW CHANGE TIMESTAMP 式の表指定子は、 解決して行変更のタイム・スタンプ列を含む基本表になる必要があります (SQLSTATE 55068)

  • ROW CHANGE TOKEN および ROW CHANGE TIMESTAMP は、 カラム・オーガナイズ 表に対して有効な式ではありません (SQLSTATE 42703)。

  • 部門 20 の従業員の EMPLOYEE 表にある各行への最新の変更に対応するタイム・スタンプ値を戻します。 EMPLOYEE 表が変更されて、ROW CHANGE TIMESTAMP 節で定義された列を含むようになったと想定します。
       SELECT ROW CHANGE TIMESTAMP FOR EMPLOYEE
         FROM EMPLOYEE WHERE DEPTNO = 20
  • 従業員番号 3500 に対応する、行の変更シーケンス内での相対点を表す BIGINT 値を戻します。 また、オプティミスティック・ロック DELETE シナリオで使用される RID_BIT スカラー関数値も戻します。 WITH UR オプションを指定して、最新の ROW CHANGE TOKEN 値を取得します。
       SELECT ROW CHANGE TOKEN FOR EMPLOYEE, RID_BIT (EMPLOYEE)
         FROM EMPLOYEE WHERE EMPNO = '3500' WITH UR
    上記のステートメントは、 行変更タイム・スタンプ列が EMPLOYEE 表にあってもなくても成功します。 以下の検索条件付き DELETE ステートメントは、 上記のステートメントの ROW CHANGE TOKEN および RID_BIT 値によって指定される行を削除します (2 つのパラメーター・マーカー値に、 上記の SELECT ステートメントから取得した値が設定されたと仮定)。
       DELETE FROM EMPLOYEE E
         WHERE RID_BIT (E) = ? AND ROW CHANGE TOKEN FOR E = ?