這篇文章主要講解了MySQL事務(wù)管理的用法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。
在瀾滄等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需求定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣,外貿(mào)網(wǎng)站制作,瀾滄網(wǎng)站建設(shè)費(fèi)用合理。
什么是事務(wù)管理:
- 可以把一系列要執(zhí)行的操作稱(chēng)為事務(wù),而事務(wù)管理就是管理這些操作要么完全執(zhí)行,要么完全不執(zhí)行(很經(jīng)典的一個(gè)例子是:A要給B轉(zhuǎn)錢(qián),首先A的錢(qián)減少了,但是突然的數(shù)據(jù)庫(kù)斷電了,導(dǎo)致無(wú)法給B加錢(qián),然后由于丟失數(shù)據(jù),B不承認(rèn)收到A的錢(qián);在這里事務(wù)就是確保加錢(qián)和減錢(qián)兩個(gè)都完全執(zhí)行或完全不執(zhí)行,如果加錢(qián)失敗,那么不會(huì)發(fā)生減錢(qián))。
- 事務(wù)管理的意義:保證數(shù)據(jù)操作的完整性。
- mysql中并不是所有的數(shù)據(jù)引擎都支持事務(wù)管理的,只有innodb支持事務(wù)管理。
事務(wù)管理的特性:
- 原子性:事務(wù)的整個(gè)操作是一個(gè)整體,不可以分割,要么全部成功,要么全部失敗。
- 一致性:事務(wù)操作的前后,數(shù)據(jù)表中的數(shù)據(jù)沒(méi)有變化。
- 隔離性:事務(wù)操作是相互隔離不受影響的。
- 持久性:數(shù)據(jù)一旦提交,不可改變,永久的改變數(shù)據(jù)表數(shù)據(jù)。
事務(wù)管理操作:
- 開(kāi)啟事務(wù)管理:開(kāi)啟之后,下面的sql語(yǔ)句并不會(huì)馬上執(zhí)行并把結(jié)果寫(xiě)到表中,而是會(huì)寫(xiě)到事務(wù)日志中。
- 回退操作:回退會(huì)清掉開(kāi)始事務(wù)管理之后寫(xiě)到事務(wù)日志中的內(nèi)容,即恢復(fù)到開(kāi)啟事務(wù)管理之前。
- 語(yǔ)法:rollback;
- 注意:回退操作只是回退"寫(xiě)"的內(nèi)容,對(duì)于普通的讀表select語(yǔ)句不能回退。
- 事務(wù)提交:將sql語(yǔ)句的結(jié)果寫(xiě)到數(shù)據(jù)表中。
實(shí)驗(yàn)表:
create table bankaccount(id int primary key auto_increment,name varchar(15),money int);
insert into bankaccount(name,money) values("Jobs",2000);
insert into bankaccount(name,money) values("Bill",3000);


補(bǔ)充:
- 當(dāng) commit 或 rollback 語(yǔ)句執(zhí)行后,事務(wù)會(huì)自動(dòng)關(guān)閉(將來(lái)的更改會(huì)隱含提交)。
- 鎖機(jī)制:在事務(wù)操作一個(gè)表時(shí),如果使用索引來(lái)取值,那么會(huì)鎖定到對(duì)應(yīng)行;如果沒(méi)有使用索引來(lái)取值,那么會(huì)鎖定整個(gè)表。鎖定之后其他連接無(wú)法操作指定行或表。
回滾點(diǎn):
- 回滾點(diǎn)可以指定rollback回退的位置【比如現(xiàn)在打了100條命令,發(fā)現(xiàn)第81打錯(cuò)了,如果回滾到打了81命令之前一點(diǎn)而不是回滾到開(kāi)啟事務(wù)之前就可以節(jié)省下很多時(shí)間。】
- 語(yǔ)法:
- 創(chuàng)建回滾點(diǎn):savepoint 回滾點(diǎn)名;
- 回滾到回滾點(diǎn):rollback to 回滾點(diǎn)名;

補(bǔ)充:
- 回滾點(diǎn)在事務(wù)管理關(guān)閉(rollback或commit之后)之后失效,不要在事務(wù)之外使用回滾點(diǎn)。
默認(rèn)的事務(wù)管理:
- 默認(rèn)情況下,mysql的事務(wù)管理是關(guān)閉(自動(dòng)事務(wù))的,語(yǔ)句的結(jié)果會(huì)馬上寫(xiě)到數(shù)據(jù)表中。
- 可以通過(guò)show variable like 'autocommit';來(lái)查看是否開(kāi)啟自動(dòng)事務(wù),值為1為自動(dòng)事務(wù)已開(kāi)啟,為0則為關(guān)閉。
- 關(guān)閉自動(dòng)事務(wù):set autocommit =0;【關(guān)閉后需要commit來(lái)執(zhí)行每一條語(yǔ)句,相當(dāng)于開(kāi)始了事務(wù)管理】
- 不過(guò)注意的是set autocommit針對(duì)的是會(huì)話(huà)變量,所以這個(gè)設(shè)置只在此次會(huì)話(huà)連接中生效。
看完上述內(nèi)容,是不是對(duì)mysql事務(wù)管理的用法有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章題目:mysql事務(wù)管理的用法
當(dāng)前路徑:http://chinadenli.net/article32/gopdsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、建站公司、靜態(tài)網(wǎng)站、網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、云服務(wù)器
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)