【问题标题】:How can I delete and get the row data in an atomic way? [closed]如何以原子方式删除和获取行数据? [关闭]
【发布时间】:2019-08-07 15:59:06
【问题描述】:

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

我怎样才能做到这一点?

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

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

MySQL 版本:5.5.54

【问题讨论】:

  • @Dharman innodb
  • 您是否有可能使用其他数据库类型,例如MariaDB 10 还是你坚持使用 MySQL 5?
  • @Dharman 无法从 mysql 更改

标签: mysql innodb mysql-5.5


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    其他一些链接:

    【讨论】:

    • 如果您发现我提供的任何链接都在回答您的问题,或者这是其中任何一个的直接副本,我们可以将此问题作为副本关闭。
    猜你喜欢
    • 2013-11-24
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2023-03-29
    • 2011-04-29
    • 2019-07-18
    • 2020-12-17
    相关资源
    最近更新 更多