首頁  >  問答  >  主體

mysql如果一个事务一直没有commit并且也没有rollback会怎样?

mysql如果一个事务一直没有commit并且也没有rollback会怎样?
有什么办法查询到这些没有被commit也没有被rollback的事务。?

巴扎黑巴扎黑2742 天前926

全部回覆(4)我來回復

  • PHPz

    PHPz2017-04-17 13:48:53

    如果MySQL存在沒有提交的事務,那麼這時候 AUTOCOMMIT 自動提交的參數應該是為 0 的。
    不過如果你透過其他的語言的MySQL驅動來操作的話,這些驅動一般都帶有自動恢復 AUTOCOMMIT 的功能,在請求處理完成後會自動 ROLLBACK 沒有處理的事務。

    回覆
    0
  • 阿神

    阿神2017-04-17 13:48:53

    在連接超時時, 那個連接沒有commit的事務會被rollback

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 13:48:53

    1.斷開連結會自動rollback
    2、死鎖或是這個鎖超時的時候,也會rollback

    回覆
    0
  • 黄舟

    黄舟2017-04-17 13:48:53

    資料庫連線中斷或要求結束的時候通常會自動rollback

    這是大家都會給的答案,但實際上到底是伺服器還是啟動環境(FPM)還是程式碼的連線庫操作的rollback呢? ? ?不太清楚,但我猜測應該是連接資料庫工具類自動rolback的或是啟動環境(FPM)直接在服務端準備回傳資料給客戶端的時候自動rollback

    網路上也有官方文件舉例說 PHP-mysql是PDO(資料庫驅動類別函式庫)自動呼叫的rollback。但也沒說在具體什麼時候斷開。 。 。

    回覆
    0
  • 取消回覆