【问题标题】:What will be the impact of MySQL transaction is not rolling back?MySQL事务不回滚会有什么影响?
【发布时间】:2021-04-06 18:39:14
【问题描述】:

这是关于 MySQL 的一般问题。假设我们已经在我们的脚本中启动了一个事务(脚本可以是 Python、PHP、Nodejs 等任何语言)并且由于数据中的一些验证问题,我们需要停止脚本。我们已经停止了脚本而不回滚事务。

这种情况下对MySQL会有什么影响?

【问题讨论】:

  • MySQL 可能会或可能不会受到影响。如需更详细的答案,我们可能希望查看示例脚本

标签: mysql transactions commit rollback


【解决方案1】:

在没有交易的情况下,这里实际上有两种结果。如果数据库操作被中断,好的情况是 a) 事务刚刚开始并且没有执行 DML,或者 b) 事务 DML 已经完成。在这种情况下,您的基础数据不会损坏,但您可能不知道交易是否执行。当事务在某些 DML 的中间被切断时,就会发生糟糕的情况。在这种情况下,您的表中可能存在不一致的数据。

真的,在这里唯一安全的方法是使用事务或只执行原子 SQL 语句(但是,它会自动在他们自己的事务中运行)。

【讨论】:

  • 我很困惑,我读到的问题好像一个事务 is 处于活动状态,并且操作人员只想知道如果脚本只是让它未提交会发生什么。
  • @JoachimIsaksson 好吧,我可能假设脚本会关闭/释放数据库连接,这反过来也应该关闭所有打开的事务。那么,剩下的问题是 MySQL 上的底层数据会发生什么。
猜你喜欢
  • 2022-01-27
  • 1970-01-01
  • 2013-06-21
  • 2016-01-19
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 2011-02-19
  • 1970-01-01
相关资源
最近更新 更多