如何以原子方式删除和获取行数据?

How can I delete and get the row data in an atomic way?

我将一次性密钥存储在 table 列中。我有一个 table,它只包含唯一的密钥,一旦读取和发送,必须使用 atomic 操作从 table 中删除。

我怎样才能做到这一点?

我需要以异步方式使用Node.js; 运行 对每个使用事务的请求进行两次查询(selectdelete)很麻烦。

我希望 Delete 也返回密钥...那会是最简单的。

MySQL版本:5.5.54

这可能是 MySQL update output deleted 的重复,也没有答案。
问题是 MySQL 还没有实现这样的语法。它在其他数据库中可用,但在 MySQL 中,您很可能在事务内部遇到 SELECT .. FOR UPDATE; DELETE ...。恐怕在 MySQL 你可能还没有更好的选择。

其他一些链接:

编写一个存储过程在单个事务中执行 SELECT .. FOR UPDATEDELETE 并返回 SELECT 结果。然后从您的客户端执行单个 CALL