溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL的事務(wù)使用場景

發(fā)布時間:2020-05-30 01:43:29 來源:億速云 閱讀:2150 作者:鴿子 欄目:編程語言

一般來講,MySQL事務(wù)主要用于處理操作量大,復雜度高的數(shù)據(jù)。本文將為大家梳理一下事務(wù)的相關(guān)學習筆記,內(nèi)容包括了事務(wù)的應(yīng)用場景說明,手動提交事務(wù)和自動提交事務(wù)。感興趣的小伙伴,趕緊一起來看看MySQL學習筆記中關(guān)于事務(wù)的知識點梳理吧!

MySQL的事務(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)賬的操作

 

MySQL的事務(wù)使用場景

 

模擬張三給李四轉(zhuǎn) 500 元錢,一個轉(zhuǎn)賬的業(yè)務(wù)操作最少要執(zhí)行下面的 2 條語句:

 

張三賬號-500

 

李四賬號+500

 

MySQL的事務(wù)使用場景

 

假設(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ù)如下:

 

MySQL的事務(wù)使用場景

(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ù)改變

 

MySQL的事務(wù)使用場景

 

3、自動提交事務(wù)

 

MySQL 默認每一條 DML(增刪改)語句都是一個單獨的事務(wù),每條語句都會自動開啟一個事務(wù),語句執(zhí)行完畢 自動提交事務(wù),MySQL 默認開始自動提交事務(wù)

 

(1)演示:自動提交事務(wù)

 

將金額重置為 1000

 

更新其中某一個賬戶

 

使用 SQLYog 查看數(shù)據(jù)庫:發(fā)現(xiàn)數(shù)據(jù)已經(jīng)改變 

 

MySQL的事務(wù)使用場景

 

2)取消自動提交

 

查看 MySQL 是否開啟自動提交事務(wù)

 

MySQL的事務(wù)使用場景

 

取消自動提交事務(wù)

 

MySQL的事務(wù)使用場景

 

執(zhí)行更新語句,使用 SQLYog 查看數(shù)據(jù)庫,發(fā)現(xiàn)數(shù)據(jù)并沒有改變 

 

在控制臺執(zhí)行 commit 提交任務(wù)

 

MySQL的事務(wù)使用場景

 

以上就是MySQL學習梳理筆記之事務(wù)講解的全部內(nèi)容了,大家都理解了嗎?如果對這部分知識點,還有疑問的朋友,可以上億速云官網(wǎng)進行相關(guān)在線課程的學習。

向AI問一下細節(jié)

免責聲明:本站發(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)容。

AI