mysql 事物的4大特性(ACID)+事物的開啟與關閉
阿新 • • 發佈:2019-02-18
原子性: 即整個事物是一個整體,要麼這個事物全部執行成功,要麼全部失敗
一致性: 即事物執行狀態結果 與 原資料形成統一。例如轉賬,總金額是不變的
隔離性: 在併發事物中,隔離開不能互相影響,但是也不能完全隔離,會降低效率
永續性:如果執行成功,資料庫崩潰,如果重新啟動,資料庫已經執行完的狀態不會變
我認為 這4個特性是互相關聯的
只有原子性 確保 一致性 才能確保 。隔離性是為了避免降低效率與互相感染影響,永續性確保資料庫非正常工作後的成功
mysql 提供開啟事物與關閉事物
開啟事物: start transaction
關閉事物:commit---成功 與 rollback--失敗;
create table money(name varchar(20), qian int(20));
insert into money(name,qian) values('zs',1000);
insert into money(name,qian) values('ls',1000);
用update tableName set qian where name=''; 自己玩幾遍
結論:
事物需要程式碼完美實現,如果事物沒有完就提交 會造成資料庫資料錯誤,這個得注意
我以為資料庫會自動判斷資料是否一致,發現並不是。需要人工自己來寫程式碼保持一致性。