一般來講,MySQL事務(wù)主要用于處理操作量大,復(fù)雜度高的數(shù)據(jù)。本文將為大家梳理一下事務(wù)的相關(guān)學(xué)習(xí)筆記,內(nèi)容包括了事務(wù)的應(yīng)用場景說明,手動提交事務(wù)和自動提交事務(wù)。感興趣的小伙伴,趕緊一起來看看MySQL學(xué)習(xí)筆記中關(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è)當(dāng)張三賬號上-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 默認(rèn)每一條 DML(增刪改)語句都是一個單獨的事務(wù),每條語句都會自動開啟一個事務(wù),語句執(zhí)行完畢 自動提交事務(wù),MySQL 默認(rèn)開始自動提交事務(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學(xué)習(xí)梳理筆記之事務(wù)講解的全部內(nèi)容了,大家都理解了嗎?如果對這部分知識點,還有疑問的朋友,可以上創(chuàng)新互聯(lián)官網(wǎng)進行相關(guān)在線課程的學(xué)習(xí)。
名稱欄目:MySQL的事務(wù)使用場景-創(chuàng)新互聯(lián)
URL鏈接:http://chinadenli.net/article36/gchsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、軟件開發(fā)、Google、電子商務(wù)、面包屑導(dǎo)航、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容