mysql数据库事务_MySQL数据库的事务管理
小伙伴們不好意思,這兩天有事沒有及時的更新哈~希望小伙伴們見諒,那么開始我們今天的分享。
MySQL 數據庫的事務
我們之前分享數據庫的數據操作,無外乎對數據庫的數據進行增、刪、改、查。就比如我們去買東西,一般都是先付錢,賣家收到錢再發貨。這個用數據庫來表示就是,第一步:從用戶的賬戶中減去一部分金額。第二步,再把減去的金額添加到商家的賬戶上。
但是萬一遇到特殊的情況,你成功的完成了第一步,從用戶的數據庫中扣除了錢,這時候突然停電,系統出現了故障,沒有完成第二步。這就尷尬了,用戶的錢少了,商家也沒收到錢。
為了應對這種情況的發生,數據庫就出現了一個功能事務,事務就是一組由 SQL 語句組成的業務邏輯,當事務內的所有 SQL語句都成功的執行,整個事務才算成功,否則就是失敗。失敗意味著整個的數據操作沒有意義,就要把數據恢復到執行事務操作之前的狀態。
上面是關于事務的介紹,下面我們用具體的代碼演示一下:
SQL語句在執行的過程中分為二個階段:
1 : 執行SQL語句
2 : 將執行結果提交給數據庫。
現在我們來演示一下:修改 id=3 的用戶的手機號碼,使之變成 123456
我們看見這個修改操作已經完成了,我們來看一下事務默認的執行方式。
show variables like 'autocommit';
事務默認的執行方式:自動提交。SQL語句執行完畢后,自動提交事務。
事務的功能演示
先來創建兩個表一個用戶表一個訂單表,寫入兩條數據。
查看一下表內的數據。
現在我們來開啟事務:start translation。
我們打開一個窗口,作為一個新的用戶,現在我們看見,數據是沒有變化的。也就是說,當一個事務沒有完成的時候,用戶只能看到事務完成前,或者完成后的狀態。
現在我們的操作完成,來提交事務。commit
數據庫中的數據修改了,別的用戶查看數據庫的時候,也是修改后的數據。如果執行的過程中發生錯誤呢?開啟事務。再來修改一下數據。
現在出錯了,事務進行回滾操作,rollback。
我們看到了,數據庫的數據恢復到沒有修改之前的狀態。這就是我們今天要分享的 MySQL 數據庫的事務了。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的mysql数据库事务_MySQL数据库的事务管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌浏览器出现方格xp系统_win10系
- 下一篇: linux cmake编译源码,linu