在DB2中选择更新

时间:2014-04-03 05:55:58

标签: db2

DB2是否支持类似于MySQL的select更新?

要求:

想要运行选择查询以从表中检索记录说' XYZ' &安培;同时想要更新同一个表,只为所选记录设置标志值为true。

1 个答案:

答案 0 :(得分:0)

假设您只想在更新之前获取一些数据,可以使用SELECT ... FROM OLD TABLE (update-statement)语法。这是一个例子(这假设DB2 for Linux / Unix / Windows,但可能适用于其他平台)。

DECLARE GLOBAL TEMPORARY TABLE SESSION.SELECT_FROM_INSERT_TEST (
     ID INTEGER
    ,STRING VARCHAR(100)
) ON COMMIT PRESERVE ROWS
;

INSERT INTO SESSION.SELECT_FROM_INSERT_TEST VALUES
    (1, 'abc'),
    (2, 'def'),
    (3, 'ghi')
;

SELECT ID FROM OLD TABLE (
    UPDATE SESSION.SELECT_FROM_INSERT_TEST
       SET STRING = 'lmnop'
    WHERE ID = 1
)
;