gpt4 book ai didi

mysql - 在提交所有其他事务之前,PDO 事务是否会阻塞?

转载 作者:可可西里 更新时间:2023-11-01 07:45:15 26 4
gpt4 key购买 nike

如果我是对的,PDO 事务并不是真正的事务:它们只是关闭自动提交(参见 documentation)。

因此,如果我有一个删除行的事务 A 和修改同一行的事务 B,则可能会发生以下情况。

  1. 事务 A 启动并关闭自动提交。
  2. 事务 B 启动并关闭自动提交。
  3. 事务 A 删除一行。
  4. 事务 B 修改同一行。
  5. 事务 A 完成并提交更改。
  6. 事务 B 完成并提交更改。

但是在第 6 步,该行已在第 5 步中删除。会发生什么情况?

另外,我怎样才能确保让事务 B 阻塞直到事务 A 被提交?仅供引用,我将 PDO 与 mysql 和 innoDB 结合使用。

谢谢。

最佳答案

正如@eggyal 所指出的,事务可以同时发生,但是 DELETE 语句会在行上放置一个独占锁,直到事务被提交,因此事务 B 将在第 4 步自动阻塞,直到事务 A 被提交。独占锁阻止所有写入和读取。

关于mysql - 在提交所有其他事务之前,PDO 事务是否会阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16929198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com