有没有办法模拟MySQL中的OUTPUT子句,因为我们在SQL Server中有一个OUTPUT子句。
这是我的查询类型
UPDATE employee
SET empage = 10
OUTPUT INSERTED.empid
WHERE (empage < 10)
因为我需要为MySQL服务器数据库提供此功能。
请建议实现此功能的最佳方式。
答案 0 :(得分:13)
employee
表,选择值并将值插入另一个表,然后更新并解锁employee
表。修改强>
我尝试过InnoDb表的一个场景,似乎有效 -
START TRANSACTION;
SELECT * FROM table WHERE id = 1 FOR UPDATE; -- lock rows
-- Or call this select to insert and lock rows
-- INSERT INTO table_output SELECT * FROM table WHERE id = 1 FOR UPDATE;
-- Make modifications
UPDATE table SET column1 = '111' WHERE id = 1;
COMMIT;