MySQL數據庫的事務管理

MySQL 數據庫的事務數據庫

 

咱們以前分享數據庫的數據操做,無外乎對數據庫的數據進行增、刪、改、查。就好比咱們去買東西,通常都是先付錢,賣家收到錢再發貨。這個用數據庫來表示就是,第一步:從用戶的帳戶中減去一部分金額。第二步,再把減去的金額添加到商家的帳戶上。微信

 

可是萬一遇到特殊的狀況,你成功的完成了第一步,從用戶的數據庫中扣除了錢,這時候忽然停電,系統出現了故障,沒有完成第二步。這就尷尬了,用戶的錢少了,商家也沒收到錢。學習

 

爲了應對這種狀況的發生,數據庫就出現了一個功能事務,事務就是一組由 SQL 語句組成的業務邏輯,當事務內的全部 SQL語句都成功的執行,整個事務纔算成功,不然就是失敗。失敗意味着整個的數據操做沒有意義,就要把數據恢復到執行事務操做以前的狀態。事務

 

 

上面是關於事務的介紹,下面咱們用具體的代碼演示一下:it

 

SQL語句在執行的過程當中分爲二個階段:io

1 : 執行SQL語句學習資料

2 : 將執行結果提交給數據庫。im

 

如今咱們來演示一下:修改 id=3 的用戶的手機號碼,使之變成 123456數據

 

 

咱們看見這個修改操做已經完成了,咱們來看一下事務默認的執行方式。微信公衆號

 

show variables like 'autocommit';

 

 

事務默認的執行方式:自動提交。SQL語句執行完畢後,自動提交事務。

 

 

事務的功能演示

 

先來建立兩個表一個用戶表一個訂單表,寫入兩條數據。

 

 

查看一下表內的數據。

 

 

如今咱們來開啓事務:start translation。

 

 

咱們打開一個窗口,做爲一個新的用戶,如今咱們看見,數據是沒有變化的。也就是說,當一個事務沒有完成的時候,用戶只能看到事務完成前,或者完成後的狀態。

 

 

如今咱們的操做完成,來提交事務。commit

 

 

數據庫中的數據修改了,別的用戶查看數據庫的時候,也是修改後的數據。若是執行的過程當中發生錯誤呢?開啓事務。再來修改一下數據。

 

 

如今出錯了,事務進行回滾操做,rollback。

 

 

咱們看到了,數據庫的數據恢復到沒有修改以前的狀態。這就是咱們今天要分享的 MySQL 數據庫的事務了。

 

想要資料的小夥伴

能夠關注微信公衆號 Java聯盟

回覆「資料」

那裏有娜娜已經準備好的

一份學習資料

拜拜~

相關文章
相關標籤/搜索