5.12 数据库事务

事务

概念

-- 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,

-- 即可回滚到原来的状态,从而保证数据库数据完整性。

-- 事务也就是要么都成功,要么都不成功

-- 事务就是由一堆sql语句组成的

使用

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 ,需要两步操作

  A 账户减去 100元

  B 账户 加 100元

倘若 A 账户减了,B账户因为网卡了没增加就会出现问题。此时使用事务是很好的运用场景 

事务可以搭配异常捕捉一起使用 

原文地址:https://www.cnblogs.com/shijieli/p/10344666.html