MySQL中的输出子句

有没有一种方法可以模拟MySQL中的OUTPUT子句,因为我们在SQL Server中有一个OUTPUT子句。

这是我的查询类型

UPDATE       employee

SET empage = 10

OUTPUT INSERTED.empid

WHERE (empage < 10)

因为我也需要MySQL服务器数据库具有此功能。

请提出实现此功能的最佳方法。

回答:

  1. 您可以创建触发器并将所需的值插入另一个表。
  2. 我不确定,但是-对于MYISAM表,您可以锁定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;

SELECT语句(FOR UPDATE子句)

以上是 MySQL中的输出子句 的全部内容, 来源链接: utcz.com/qa/430473.html

回到顶部