-- 事務用於將某些操做的多個SQL做爲原子性操做,一旦有某一個出現錯誤,sql
-- 便可回滾到原來的狀態,從而保證數據庫數據完整性。數據庫
-- 事務也就是要麼都成功,要麼都不成功spa
-- 事務就是由一堆sql語句組成的code
create table user( id int primary key auto_increment, name char(32), balance int #用戶餘額 ); insert into user(name,balance) values('海燕',200), ('哪吒',200), ('小哈',200); -- 若是都成功就執行commit,,,若是不成功就執行rollback。 start transaction #開啓事務 update user set balance = 100 where name = '海燕'; update user set balance = 210 where name = '哪吒'; update user set balance = 290 where name = '小哈'; #sql語句錯誤就會報錯了 commit; #若是全部的sql語句都沒有出現異常,應該執行commit start transaction update user set balance = 100 where name = '海燕'; update user set balance = 210 where name = '哪吒'; updatezzzz user set balance = 290 where name = '小哈'; #sql語句錯誤就會報錯了 rollback; #若是任意一條sql出現異常,都應該回歸到初始狀態
好比付款轉帳操做,好比 A 轉帳給 B ,須要兩步操做blog
A 帳戶減去 100元事務
B 帳戶 加 100元rem
假若 A 帳戶減了,B帳戶由於網卡了沒增長就會出現問題。此時使用事務是很好的運用場景 it
事務能夠搭配異常捕捉一塊兒使用 io