TheLangoliers 2014-02-24 03:53
浏览 848

一个关于事务并发的问题

银行有两个客户
银行总存款 表:T_Money 字段:totalMoney:1000
客户一对应 T1 取走100
declare decimal(12,4) @totalMoney;
select @totalMoney=totalMoney from T_Money
update T_Money set totalMoney= @totalMoney-100

客户一对应 T2 取走50
declare decimal(12,4) @totalMoney;
select @totalMoney=totalMoney from T_Money
update T_Money set totalMoney= @totalMoney-50

假如T1 T2并发了
两个是否的@totalMoney都读了1000
假如T1先更新把totalMoney更新为900了,T2后更新,因为读到的totalMoney为1000所以把totalMoney更新为950了,实际上应该两个事务执行完,正确的totalMoney为850

问:
1、这样的情况乐观的并发能控制到么?
2、事务隔离级别能控制到么?
3、到底是怎么控制的- -。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥30 vmware exsi重置后的密码
    • ¥15 易盾点选的cb参数怎么解啊
    • ¥15 MATLAB运行显示错误,如何解决?
    • ¥15 c++头文件不能识别CDialog
    • ¥15 Excel发现不可读取的内容
    • ¥15 UE5#if WITH_EDITOR导致打包的功能不可用
    • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
    • ¥20 yolov5自定义Prune报错,如何解决?
    • ¥15 电磁场的matlab仿真
    • ¥15 mars2d在vue3中的引入问题