mysql中set autocommit=0與start transaction區別


set autocommit=0,
當前session禁用自動提交事物,自此句執行以后,每個SQL語句或者語句塊所在的事務都需要顯示"commit"才能提交事務。

start transaction

指的是啟動一個新事務。

 

     在默認的情況下,MySQL從自動提交(autocommit)模式運行,這種模式會在每條語句執行完畢后把它作出的修改立刻提交給數據庫並使之永久化。事實上,這相當於把每一條語句都隱含地當做一個事務來執行。如果你想明確地執行事務,需要禁用自動提交模式並告訴MySQL你想讓它在何時提交或回滾有關的修改。
執行事務的常用辦法是發出一條START TRANSACTION(或BEGIN)語句掛起自動提交模式,然后執行構成本次事務的各條語句,最后用一條 COMMIT語句結束事務並把它們作出的修改永久性地記入數據庫。萬一在事務過程中發生錯誤,用一條ROLLBACK語句撤銷事務並把數據庫恢復到事務開 始之前的狀態。

       START TRANSACTION語句"掛起"自動提交模式的含義是:在事務被提交或回滾之后,該模式將恢復到開始本次事務的 START TRANSACTION語句被執行之前的狀態。(如果自動提交模式原來是激活的,結束事務將讓你回到自動提交模式;如果它原來是禁用的,結束 當前事務將開始下一個事務。)
如果是autocommit模式  ,autocommit的值應該為 1 ,不autocommit 的值是 0 ;請在試驗前 確定autocommit 的模式是否開啟

 

參考官方文檔:http://dev.mysql.com/doc/refman/5.7/en/commit.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM