有以下两个事务同时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如何解决这个问题?
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
5 回答1.4k 阅读
事务这块在程序控制,一般不要数据库自己的事务机制