标签:account 演示 -- 事物 李四 提交 balance 500
事物_基本演示
事物的基本介绍
概念:
如果一个包含多个业务的操作,被事物管理,要么同时成功,要么同时失败
图解:
操作:
开启事物: start transaction;
回滚: rollback;
提交:commit;
案例:
-- 张三账户-500
UPDATE account set account.balance= balance -500 WHERE name="张三";
-- 李四账户+500
UPDATE account set account.balance= balance +500 WHERE name="李四";
假如张三给李四转账的时候 转过去了 但是李四没有收到 那么500元就不翼而飞了 那么这时候就需要使用事物
-- 开启事物
START TRANSACTION;
-- 张三账户-500
UPDATE account set account.balance= balance -500 WHERE name="张三" 出错...;
-- 李四账户+500
UPDATE account set account.balance= balance +500 WHERE name="李四";
-- 发现问题是回滚
ROLLBACK;
我故意加一个出错 ,然后使用事物看一下会不会执行成功
并没有执行
那么我们把出错解决了
-- 开启事物
START TRANSACTION;
-- 张三账户-500
UPDATE account set account.balance= balance -500 WHERE name="张三" ;
-- 李四账户+500
UPDATE account set account.balance= balance +500 WHERE name="李四";
-- 发现问题是回滚
ROLLBACK;
这次执行成功!
事物_自动提交&手动提交
-- 开启事物
START TRANSACTION;
-- 张三账户-500
UPDATE account set account.balance= balance -500 WHERE name="张三" ;
-- 李四账户+500
UPDATE account set account.balance= balance +500 WHERE name="李四";
-- 发现问题是回滚
ROLLBACK;
刚才我们看到 ,没有写提交语句但是也是提交上去了,这就是自动提交
那么手动提交需要我们手动来写
-- 开启事物
START TRANSACTION;
-- 张三账户-500
UPDATE account set account.balance= balance -500 WHERE name="张三" ;
-- 李四账户+500
UPDATE account set account.balance= balance +500 WHERE name="李四";
-- 发现问题是回滚
ROLLBACK;
-- 提交事物
COMMIT;
这就是手动提交
事物的提交的两种方法
手动提交:需要先开启事物,在手动提交
自动提交:sql就是自动提交的
查看提交方式:
SELECT @@autocommit
如果是一的话 就是自动提交,0的话就是手动提交
标签:account,演示,--,事物,李四,提交,balance,500 来源: https://www.cnblogs.com/ssr1/p/16543028.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。