MySQL事务的介绍+事务的特性+事务的开启
事務(wù)介紹:
簡單的說,事務(wù)就是指邏輯上的一組SQL語句操作,組成這組操作的各個SQL語句,要么全成功要么全失敗。
例如:A給B轉(zhuǎn)賬5元,流程是從A的賬戶扣除5元,把5元打入B的賬戶,B的賬戶上收到5元。
SQL語句為:update account set money=money-5 where name='A'; update account set money=money+5 where name='B';
上述的SQL語句操作,在事務(wù)中要么都執(zhí)行,要么都不執(zhí)行; 這是事務(wù)的原子性(Acomicity)
事務(wù)的四大特性(ACID)
1.原子性(Atomicity)
事務(wù)是一個不可分割的單位,事務(wù)中的所有SQL等操作要么都發(fā)生,要么都不發(fā)生。
2.一致性(Consistency)
事務(wù)發(fā)生前和發(fā)生后,數(shù)據(jù)的完整性必須保持一致。
3.隔離性(Isolation)
當(dāng)并發(fā)訪問數(shù)據(jù)庫時,一個正在執(zhí)行的事務(wù)在執(zhí)行完畢前,對于其他的回話是不可見的,多個并發(fā)事務(wù)之間的數(shù)據(jù)是相互隔離的。有個備份參數(shù)--single-transaction(innodb使用)
4.持久性(Durability)
一個事務(wù)一旦被提交,它對數(shù)據(jù)庫中的數(shù)據(jù)改變時永久性的。如果出了錯誤,事務(wù)也不允許撤銷,只能通過"補(bǔ)償事務(wù)"。
開啟事務(wù):
數(shù)據(jù)庫默認(rèn)事務(wù)是自動提交的,發(fā)一條SQL執(zhí)行一條。如果想多條SQL放在一個事務(wù)中執(zhí)行,則需要使用事務(wù)進(jìn)行處理。當(dāng)開啟一個事務(wù),并且沒有提交,mysql會自動回滾事務(wù),或者使用rollback命令手動回滾事務(wù)。
start transaction 開啟事務(wù)
rollback 回滾事務(wù)
commit 提交事務(wù)
mysql>set global autocommit=1; #開啟自動提交
mysql>set global autocommit=0; #禁止自動提交? 如果不執(zhí)行commit,退出后,之前執(zhí)行的操作就丟失了。
?
轉(zhuǎn)載于:https://www.cnblogs.com/itqingtian/p/10276708.html
總結(jié)
以上是生活随笔為你收集整理的MySQL事务的介绍+事务的特性+事务的开启的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt消息机制和事件、事件过滤
- 下一篇: join 分割数组