mysql事务应用

来源:互联网 发布:vr全景拼接软件 编辑:程序博客网 时间:2024/05/16 10:28

事务用于保证一系列事件全部执行成功,就提交;否则回滚所有事件重新执行。

①开启事务 start transaction 

②运行sql; 
③提交,同时生效\回滚 commit\rollback



例如:张三给李四转账,先从张三账户上减去300,再向李四账户上加上300.这是两件事情,如果第一件事情执行成功,第二件失败,则会出现张三钱少了,李四的却没有。 
所以以上事件要用事务。
create table bankCards(
id int auto_increment primary key,
cdname varchar(15),
cdnumber varchar(55),
cdmoney decimal(10.2)
) engine innodb ;
insert into bankCards values(null,'张三','6012 5456 6698 1145 022',56421.36);
insert into bankCards values(null,'李四','6012 5456 9987 1145 365',556.62);
insert into bankCards values(null,'赵猛','6012 5456 **** 9874 012',91987.32);
-- 开始还钱
start transaction;
update bankCards set cdmoney=cdmoney-300 where cdname='张三';
update bankCards set cdmoney=cdmoney+300 where cdname='李四';
commit;

\rollback;

事务经常用在存储过程中。

0 0