繁体   English   中英

PDO事务是否会阻塞,直到所有其他事务都被提交?

[英]Do PDO transactions block until all other transactions are committed?

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

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

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

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

另外,如何确保在事务A提交之前让事务B阻塞? 仅供参考,我正在使用带有mysql的PDO和innoDB。

谢谢。

正如@eggyal指出的那样,事务可以同时发生,但是DELETE语句会在事务提交之前对该行进行排他锁定,因此事务B将在步骤4自动阻塞,直到提交事务A. 独占锁定块所有写入和读取。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM