如何以原子方式删除和获取行数据?
How can I delete and get the row data in an atomic way?
我将一次性密钥存储在 table 列中。我有一个 table,它只包含唯一的密钥,一旦读取和发送,必须使用 atomic 操作从 table 中删除。
我怎样才能做到这一点?
我需要以异步方式使用Node.js; 运行 对每个使用事务的请求进行两次查询(select
和 delete
)很麻烦。
我希望 Delete
也返回密钥...那会是最简单的。
MySQL版本:5.5.54
这可能是 MySQL update output deleted 的重复,也没有答案。
问题是 MySQL 还没有实现这样的语法。它在其他数据库中可用,但在 MySQL 中,您很可能在事务内部遇到 SELECT .. FOR UPDATE; DELETE ...
。恐怕在 MySQL 你可能还没有更好的选择。
其他一些链接:
编写一个存储过程在单个事务中执行 SELECT .. FOR UPDATE
和 DELETE
并返回 SELECT
结果。然后从您的客户端执行单个 CALL
。
我将一次性密钥存储在 table 列中。我有一个 table,它只包含唯一的密钥,一旦读取和发送,必须使用 atomic 操作从 table 中删除。
我怎样才能做到这一点?
我需要以异步方式使用Node.js; 运行 对每个使用事务的请求进行两次查询(select
和 delete
)很麻烦。
我希望 Delete
也返回密钥...那会是最简单的。
MySQL版本:5.5.54
这可能是 MySQL update output deleted 的重复,也没有答案。
问题是 MySQL 还没有实现这样的语法。它在其他数据库中可用,但在 MySQL 中,您很可能在事务内部遇到 SELECT .. FOR UPDATE; DELETE ...
。恐怕在 MySQL 你可能还没有更好的选择。
其他一些链接:
编写一个存储过程在单个事务中执行 SELECT .. FOR UPDATE
和 DELETE
并返回 SELECT
结果。然后从您的客户端执行单个 CALL
。