有没有办法模拟 MySQL 中的 OUTPUT 子句,因为我们在 SQL Server 中有一个 OUTPUT 子句。
这是我的查询类型
UPDATE employee
SET empage = 10
OUTPUT INSERTED.empid
WHERE (empage < 10)
因为我也需要 MySQL 服务器数据库具有此功能。
请建议实现此功能的最佳方法。
- 您可以创建一个触发器并将所需的值插入到另一个表中。
- 我不确定,但是 - 对于 MYISAM 表,你可以锁定
employee
表,选择并将值插入到另一个表中,然后更新和解锁employee
table.
EDIT:
我尝试过使用 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;
SELECT 语句(FOR UPDATE 子句)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)