您好,登錄后才能下訂單哦!
一般來講,MySQL事務(wù)主要用于處理操作量大,復雜度高的數(shù)據(jù)。本文將為大家梳理一下事務(wù)的相關(guān)學習筆記,內(nèi)容包括了事務(wù)的應(yīng)用場景說明,手動提交事務(wù)和自動提交事務(wù)。感興趣的小伙伴,趕緊一起來看看MySQL學習筆記中關(guān)于事務(wù)的知識點梳理吧!
1、事務(wù)的應(yīng)用場景說明
(1)事務(wù)的定義
在實際的開發(fā)過程中,一個業(yè)務(wù)操作如:轉(zhuǎn)賬,往往是要多次訪問數(shù)據(jù)庫才能完成的。轉(zhuǎn) 賬是一個用戶扣錢,另一個用戶加錢。如果其中有一條 SQL 語句出現(xiàn)異常,這條 SQL 就可能執(zhí)行失敗。事務(wù)執(zhí)行是一個整體,所有的 SQL 語句都必須執(zhí)行成功。如果其中有 1 條 SQL 語句出現(xiàn)異常,則所有的 SQL 語句都要回滾,整個業(yè)務(wù)執(zhí)行失敗。
(2)轉(zhuǎn)賬的操作
模擬張三給李四轉(zhuǎn) 500 元錢,一個轉(zhuǎn)賬的業(yè)務(wù)操作最少要執(zhí)行下面的 2 條語句:
張三賬號-500
李四賬號+500
假設(shè)當張三賬號上-500 元,服務(wù)器崩潰了。李四的賬號并沒有+500 元,數(shù)據(jù)就出現(xiàn)問題了。我們需要保證其中 一條 SQL 語句出現(xiàn)問題,整個轉(zhuǎn)賬就算失敗。只有兩條 SQL 都成功了轉(zhuǎn)賬才算成功。這個時候就需要用到事務(wù)。
2、手動提交事務(wù)
MYSQL 中可以有兩種方式進行事務(wù)的操作:
手動提交事務(wù)
手動提交事務(wù)的SQL語句
開啟事務(wù):start transaction;
提交事務(wù):commit;
回滾事務(wù):rollback;
自動提交事務(wù)
手動提交事務(wù)使用過程:
成功的情況: 開啟事務(wù) ? 執(zhí)行多條 SQL 語句 ? 成功提交事務(wù)
執(zhí)行失敗的情況: 開啟事務(wù) ? 執(zhí)行多條 SQL 語句 ? 事務(wù)的回滾
案例演示1:事務(wù)提交 模擬張三給李四轉(zhuǎn) 500 元錢(成功) 目前數(shù)據(jù)庫數(shù)據(jù)如下:
(1)使用 DOS 控制臺進入 MySQL
(2)執(zhí)行以下 SQL 語句: 1.開啟事務(wù), 2.張三賬號-500, 3.李四賬號+500
(3)使用 SQLYog 查看數(shù)據(jù)庫:發(fā)現(xiàn)數(shù)據(jù)并沒有改變
(4)在控制臺執(zhí)行 commit 提交事務(wù):
(5)使用 SQLYog 查看數(shù)據(jù)庫:發(fā)現(xiàn)數(shù)據(jù)改變
3、自動提交事務(wù)
MySQL 默認每一條 DML(增刪改)語句都是一個單獨的事務(wù),每條語句都會自動開啟一個事務(wù),語句執(zhí)行完畢 自動提交事務(wù),MySQL 默認開始自動提交事務(wù)
(1)演示:自動提交事務(wù)
將金額重置為 1000
更新其中某一個賬戶
使用 SQLYog 查看數(shù)據(jù)庫:發(fā)現(xiàn)數(shù)據(jù)已經(jīng)改變
(2)取消自動提交
查看 MySQL 是否開啟自動提交事務(wù)
取消自動提交事務(wù)
執(zhí)行更新語句,使用 SQLYog 查看數(shù)據(jù)庫,發(fā)現(xiàn)數(shù)據(jù)并沒有改變
在控制臺執(zhí)行 commit 提交任務(wù)
以上就是MySQL學習梳理筆記之事務(wù)講解的全部內(nèi)容了,大家都理解了嗎?如果對這部分知識點,還有疑問的朋友,可以上億速云官網(wǎng)進行相關(guān)在線課程的學習。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。