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