一般來(lái)講,MySQL事務(wù)主要用于處理操作量大,復(fù)雜度高的數(shù)據(jù)。本文將為大家梳理一下事務(wù)的相關(guān)學(xué)習(xí)筆記,內(nèi)容包括了事務(wù)的應(yīng)用場(chǎng)景說(shuō)明,手動(dòng)提交事務(wù)和自動(dòng)提交事務(wù)。感興趣的小伙伴,趕緊一起來(lái)看看MySQL學(xué)習(xí)筆記中關(guān)于事務(wù)的知識(shí)點(diǎn)梳理吧!
1、事務(wù)的應(yīng)用場(chǎng)景說(shuō)明
(1)事務(wù)的定義
在實(shí)際的開(kāi)發(fā)過(guò)程中,一個(gè)業(yè)務(wù)操作如:轉(zhuǎn)賬,往往是要多次訪問(wèn)數(shù)據(jù)庫(kù)才能完成的。轉(zhuǎn) 賬是一個(gè)用戶扣錢(qián),另一個(gè)用戶加錢(qián)。如果其中有一條 SQL 語(yǔ)句出現(xiàn)異常,這條 SQL 就可能執(zhí)行失敗。事務(wù)執(zhí)行是一個(gè)整體,所有的 SQL 語(yǔ)句都必須執(zhí)行成功。如果其中有 1 條 SQL 語(yǔ)句出現(xiàn)異常,則所有的 SQL 語(yǔ)句都要回滾,整個(gè)業(yè)務(wù)執(zhí)行失敗。
(2)轉(zhuǎn)賬的操作
模擬張三給李四轉(zhuǎn) 500 元錢(qián),一個(gè)轉(zhuǎn)賬的業(yè)務(wù)操作最少要執(zhí)行下面的 2 條語(yǔ)句:
張三賬號(hào)-500
李四賬號(hào)+500
假設(shè)當(dāng)張三賬號(hào)上-500 元,服務(wù)器崩潰了。李四的賬號(hào)并沒(méi)有+500 元,數(shù)據(jù)就出現(xiàn)問(wèn)題了。我們需要保證其中 一條 SQL 語(yǔ)句出現(xiàn)問(wèn)題,整個(gè)轉(zhuǎn)賬就算失敗。只有兩條 SQL 都成功了轉(zhuǎn)賬才算成功。這個(gè)時(shí)候就需要用到事務(wù)。
2、手動(dòng)提交事務(wù)
MYSQL 中可以有兩種方式進(jìn)行事務(wù)的操作:
手動(dòng)提交事務(wù)
手動(dòng)提交事務(wù)的SQL語(yǔ)句
開(kāi)啟事務(wù):start transaction;
提交事務(wù):commit;
回滾事務(wù):rollback;
自動(dòng)提交事務(wù)
手動(dòng)提交事務(wù)使用過(guò)程:
成功的情況: 開(kāi)啟事務(wù) ? 執(zhí)行多條 SQL 語(yǔ)句 ? 成功提交事務(wù)
執(zhí)行失敗的情況: 開(kāi)啟事務(wù) ? 執(zhí)行多條 SQL 語(yǔ)句 ? 事務(wù)的回滾
案例演示1:事務(wù)提交 模擬張三給李四轉(zhuǎn) 500 元錢(qián)(成功) 目前數(shù)據(jù)庫(kù)數(shù)據(jù)如下:
(1)使用 DOS 控制臺(tái)進(jìn)入 MySQL
(2)執(zhí)行以下 SQL 語(yǔ)句: 1.開(kāi)啟事務(wù), 2.張三賬號(hào)-500, 3.李四賬號(hào)+500
(3)使用 SQLYog 查看數(shù)據(jù)庫(kù):發(fā)現(xiàn)數(shù)據(jù)并沒(méi)有改變
(4)在控制臺(tái)執(zhí)行 commit 提交事務(wù):
(5)使用 SQLYog 查看數(shù)據(jù)庫(kù):發(fā)現(xiàn)數(shù)據(jù)改變
3、自動(dòng)提交事務(wù)
MySQL 默認(rèn)每一條 DML(增刪改)語(yǔ)句都是一個(gè)單獨(dú)的事務(wù),每條語(yǔ)句都會(huì)自動(dòng)開(kāi)啟一個(gè)事務(wù),語(yǔ)句執(zhí)行完畢 自動(dòng)提交事務(wù),MySQL 默認(rèn)開(kāi)始自動(dòng)提交事務(wù)
(1)演示:自動(dòng)提交事務(wù)
將金額重置為 1000
更新其中某一個(gè)賬戶
使用 SQLYog 查看數(shù)據(jù)庫(kù):發(fā)現(xiàn)數(shù)據(jù)已經(jīng)改變
(2)取消自動(dòng)提交
查看 MySQL 是否開(kāi)啟自動(dòng)提交事務(wù)
取消自動(dòng)提交事務(wù)
執(zhí)行更新語(yǔ)句,使用 SQLYog 查看數(shù)據(jù)庫(kù),發(fā)現(xiàn)數(shù)據(jù)并沒(méi)有改變
在控制臺(tái)執(zhí)行 commit 提交任務(wù)
以上就是MySQL學(xué)習(xí)梳理筆記之事務(wù)講解的全部?jī)?nèi)容了,大家都理解了嗎?如果對(duì)這部分知識(shí)點(diǎn),還有疑問(wèn)的朋友,可以上創(chuàng)新互聯(lián)官網(wǎng)進(jìn)行相關(guān)在線課程的學(xué)習(xí)。
名稱欄目:MySQL的事務(wù)使用場(chǎng)景-創(chuàng)新互聯(lián)
URL鏈接:http://www.chinadenli.net/article36/gchsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、軟件開(kāi)發(fā)、Google、電子商務(wù)、面包屑導(dǎo)航、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容