5.12 數據庫事務

事務

概念

-- 事務用於將某些操做的多個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

相關文章
相關標籤/搜索