簡體   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