有以下两个事务同时commit:
A: 读取余额,减掉50,提交更新数据库
B: 读取余额,加上50,提交数据库
假设A,B两事务同时提交,mysql如何保证最终结果正确?
mysql默认隔离级别为可重复读,那么就有可能A读到余额100元,然后更新到50;此时B执行,B执行完成。此时库为150;A再提交的话就成了50,B的更新被覆盖。。
我的这个理解方式哪里有问题?mysql如何解决这个问题?
有以下两个事务同时commit:
A: 读取余额,减掉50,提交更新数据库
B: 读取余额,加上50,提交数据库
假设A,B两事务同时提交,mysql如何保证最终结果正确?
mysql默认隔离级别为可重复读,那么就有可能A读到余额100元,然后更新到50;此时B执行,B执行完成。此时库为150;A再提交的话就成了50,B的更新被覆盖。。
我的这个理解方式哪里有问题?mysql如何解决这个问题?
4 回答1.3k 阅读✓ 已解决
8 回答1.2k 阅读
3 回答1k 阅读✓ 已解决
2 回答721 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.3k 阅读
1 回答866 阅读✓ 已解决
事务这块在程序控制,一般不要数据库自己的事务机制