关于转账这个例子

关于转账这个例子

A原来有500元,给B转10元,但是事务还没有提交

这时C给A转了100元并提交了事务,这时A转给B的钱回滚了,请问A还剩多少钱?

老师您好,这个题的答案是600吧?

A给B转10元的时候,事务未提交,这时A还是500元,后面C给A转钱并提交过后,A还剩600元

也就是说,整个例题中,A就只有500和600这两种状态,没有490和590这两种状态(因为回滚了)

老师您看我这种理解对么

讲师举这个例子是想要说明什么呢

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好:如果隔离级别是读提交及以上,你的理解就是正确的。而在老师所举的例子中隔离级别是读未提交,在A转给B的钱回滚后A是590元,B是0元,凭空消失了10元。因此讲这个例子是为了引入读提交这种事务隔离级别,在读提交的隔离级别下就不会存在上述情况。

如果解决了你的疑惑,请采纳,祝学习愉快~


  • 觉浅老师,我还是不能理解这10元是怎么消失的 为什么读未提交就会影响到最后的回滚呢? 不只是读取数据这么简单么? 我目前的理解是,A在给B转钱后,A有两种状态,在实际状态里A的钱不变还是500,在未提交的状态里A只剩490元 这时C给A转100是读取的未提交状态,也就是将A的未提交状态当做实际状态来进行计算,那么这时A处于未提交状态的490元就被错当成了已提交状态,所以这时A的实际状态也只有490元 这时给B的钱后滚,由于回滚只影响未提交状态不影响实际状态,所以到最后A还是只有590元,B有0元,导致10元不见 我这样理解对么觉浅老师?
    2020-05-30 08:19:51
  • 同学你好:你的理解是正确的!祝学习愉快~
    2020-05-30 11:24:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师