DB2是否支持类似于MySQL的select更新?
要求:
想要运行选择查询以从表中检索记录说' XYZ' &安培;同时想要更新同一个表,只为所选记录设置标志值为true。
答案 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
)
;