19-mysql --事務1

什麼是事務

事務是由單獨單元的一個或多個sql語句組成,在這個單元中,每個mysql語句是相互依賴的。
而整個單獨單元作爲一個不可分割的整體,如果單元中某條sql語句一旦執行失敗或產生錯誤,整個單元就會回滾。所有受到影響的數據將返回到事務開始以前的狀態;如果單元中的所有sql語句執行成功,則事務被順利執行。

事務的acid屬性

1 原子性(Atomicity)
原子性是指事務是一個不可分割的工作單元,事務中的操作要麼都發生,要麼都不發生
2 一致性(Consistency)
事務必須使數據庫從一個一致性狀態變換到另一個一致性狀態
3 隔離性(isolatiopn)
是指一個事務的執行不能被其他事務干擾,即一個事務內部的操作及使用的數據對併發的其他事務是隔離的,併發執行的各個事務之間不能相互干擾
4 持久性(Durability)
是指一個事務一旦被提交,它對數據庫中的數據的改變就是永久性的,接下來的其他操作和數據庫故障不應該對其有任何影響

事務分類

==隱式事務:==事務沒有明顯的開啓和結束表級,比如 insert update delete語句
delete from 表 where id=1;

顯式事務: 事務具有明顯的開啓和結束的標記
前提:必須先設置自動提交功能爲禁用: set autocommit=0;

創建事務

步驟一:開啓事務

set autocommit=0;
start transaction;<-----可選的

步驟二:編寫事務中的slq語句(事務中沒有create語句

語句1;
語句2...

步驟三:結束事務

commit;#結束事務 
 Or
rollback;#回滾事務

演示案例:

#開啓事務
SET autocommit=0;
START TRANSACTION;#本句可選
#編寫一組sql
UPDATE account SET balance=1000 WHERE username='Henry';
UPDATE account SET balance=2000 WHERE username='Json';
#結束事務 提交數據commit or  回滾 rollback;
COMMIT;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章