Mysql事务简单解析

4 篇文章 0 订阅
  • 概念
    事务是把多个操作捆绑成一个整体,事务中的若干个操作要么全部执行成功,要么全部撤回。
  • 事务操作
    1.开启事务 start transaction;
    2.回滚事务 rollback;
    3.提交事务 commit;

举例–张三给李四转账

-- 创建账户表
create table account(
	id int primary key auto_increment,
    name varchar(20),
    balance double 
);
insert into account values (null,'曹操',1000), (null,'刘备',1000);

-- 1.拆分转账步骤: 
--  曹操的账户金额减少500
update account set balance =balance-500 where name ='曹操';
--  刘备的账户金额增加500
update account set balance =balance+500 where name ='刘备';

-- 2.还原数据,在两个操作中间加点异常
update account set balance =1000;
 --  曹操的账户金额减少500
update account set balance =balance-500 where name ='曹操';
-- 加个异常
aaa 
--  刘备的账户金额增加500
update account set balance =balance+500 where name ='刘备';

-- 3.结果曹操的金额减少500,刘备的金额没有发生变化 -- 再次还原数据
update account set balance =1000;
-- 添加事务管理
start transaction;
--  曹操的账户金额减少500
update account set balance =balance-500 where name ='曹操';
-- 中间加个异常
aaa 
--  刘备的账户金额增加500
update account set balance =balance+500 where name ='刘备';
-- 新开启一个本地连接窗口,对比两个窗口数据,发现新窗口数据不变,说明事务在开启后,没有提交,或没有回滚,数据只是在窗口暂时发生了变化,并没有对数据库作永久的更改。此时采取回滚操作
rollback;
-- 再次观察数据,发现数据已经还原

-- 4.开启事务,不加异常,最后提交事务。
commit;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值