数据库 - mysql如何处理数据变化中的事务?
迷茫
迷茫 2017-04-17 16:38:02
[MySQL讨论组]

有以下两个事务同时commit:
A: 读取余额,减掉50,提交更新数据库
B: 读取余额,加上50,提交数据库

假设A,B两事务同时提交,mysql如何保证最终结果正确?
mysql默认隔离级别为可重复读,那么就有可能A读到余额100元,然后更新到50;此时B执行,B执行完成。此时库为150;A再提交的话就成了50,B的更新被覆盖。。
我的这个理解方式哪里有问题?mysql如何解决这个问题?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
PHPz

事务这块在程序控制,一般不要数据库自己的事务机制

怪我咯

select for update,上锁,效果就是A或B其中一个读了余额,另外一个等待锁读不了余额,也就不会有后续的并发写。

黄舟

你这个不属于事务,事务是用来处理多个事件的添删改

而你这个属于并发。。。

只是修改一条数据,不需要使用事务,像你说的同时就会耗性能

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号