码迷,mamicode.com
首页 > 数据库 > 详细

MySQL 高级(3)

时间:2018-11-26 21:55:43      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:action   name   upd   sql语句   高级   实现   cti   修改   rollback   

事物

1.什么是事物

事物是逻辑上的一组操作,要么都成功,要么都失败

2.为什么需要事物

很多时候一个数据操作,不是一个sql语句就完成的,可能有很多个sql语句,如果部分sql执行成功而部分sql执行失败将导致数据错乱!

3.使用事物

start transaction; #开启事物,在这条语句之后的sql将处在同一事物,并不会立即修改数据库

commit;#提交事物,让这个事物中的sql立即执行数据的操作;

rollback; 回滚事物,取消这个事物,这个事物不会对数据库中的数据产生任何影响

案列:转账过程中发生异常

create table account(id int primary key auto_increment,name char(20),money double);

insert into account values(1,‘赵大儿子‘,1000);
insert into account values(2,‘刘大牛‘,1000);
insert into account values(3,‘猪头三‘,1000);
insert into account values(4,‘王进‘,1000);
insert into account values(5,‘黄卉‘,1000);

start transaction;

update account set money = money - 500 where id =1;

update account set money = money +500 where id =2;

commit;

rollback;

注意;事物的回滚的前提是能捕捉到异常否则无法决定何时回滚,python 中很简单就实现了,

MySQL中需要使用存储过程才能捕获异常!

 

MySQL 高级(3)

标签:action   name   upd   sql语句   高级   实现   cti   修改   rollback   

原文地址:https://www.cnblogs.com/lujiachengdelu/p/10022834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!