首頁  >  文章  >  每日程式設計  >  Mysql事務提交及事務回滾是什麼意思

Mysql事務提交及事務回滾是什麼意思

藏色散人
藏色散人原創
2018-10-29 16:53:3621921瀏覽

本篇文章主要跟大家介紹mysql事務提交及事務回滾的相關知識。

事務可以說是一段sql 語句的批次處理,但是這個批次是一個atom(原子) ,不可分割,要麼都提交執行,要麼回滾(rollback)都不執行。關於事務的詳細定義介紹,我們在之前的文章中已經給大家介紹過了,需要的朋友可以先參考了解。

mysql資料表中交易是什麼意思

怎麼開啟Mysql資料表中的交易

那麼這裡的事務提交和事務回滾是什麼意思?又怎麼實現?

下面我們依然結合一些簡單的範例給大家詳細說明。

一、交易提交(commit)#​​

##成功的結束,將所有的DML(insert、update、delete)語句操作歷史記錄和底層硬碟資料來一次同步。

例如,現在有money這張表,其中有兩個數據,id為1和id為2 的金額分別是7000和8000。


Mysql事務提交及事務回滾是什麼意思

然後我們透過「start transaction」語句開啟交易。


Mysql事務提交及事務回滾是什麼意思

再對表中資料進行一些更新操作,如下圖中所示,我們分別對錶中id為1和id為2的人增加金額5000。


Mysql事務提交及事務回滾是什麼意思

那麼我們在之前的文章【怎麼開啟Mysql資料表中手動交易】中,有說到交易開啟後,再更新資料的話,資料庫中的真實資料是不會有變化的,只是將記錄更新到交易日誌中。如果想要資料同步更新到資料庫中,我們就需要進行交易提交操作。

這裡就需要大家掌握交易提交的語法:

commit;

Mysql事務提交及事務回滾是什麼意思

交易提交後,我們再透過Navicat檢查下資料表中的資料是否發生了變化。

Mysql事務提交及事務回滾是什麼意思

如圖事務提執行交即確認後,才能對真實的表格資料進行變更。

二、交易回滾(rollback)

失敗的結束,將所有的DML語句操作歷史記錄全部清空。

在進行上面的交易提交操作後,money表中的資料已經變成12000和13000了。

這裡我們再重新開啟事務,並再進行一系列更新資料操作。


Mysql事務提交及事務回滾是什麼意思

交易回滾的基本語法:

rollback;

Mysql事務提交及事務回滾是什麼意思

那麼從圖中我們可以發現,當我們進行交易回滾操作後,在開啟交易之後的一系列操作都會被清空,也就是說進行交易回滾後,資料庫中資料依然不會發生任何變化。

注意:如果交易中所有sql語句執行正確則需要自己手動提交commit;否則有任何一條執行錯誤,需要自己提交一條rollback,這時會回滾所有操作,而不是commit會給你自動判斷和回滾。

這篇文章就是關於mysql資料表手動事務提交和事務回滾的相關知識介紹,簡單易懂,希望對需要的朋友有所幫助!


想要了解更多mysql知識,可以關注PHP中文網

mysql影片教學,歡迎大家參考學習!

以上是Mysql事務提交及事務回滾是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn