假设我们有一张表“银行账户”( 身份证号码, 余额号码 )
并且存在两行:
ID |平衡
1 | 0.00
2 | 0.00
如果一笔交易执行以下代码:
更新 Bank_Account 设置余额 = 余额 + 100 其中 id in (1,2);提交;
既然提交不是瞬时的,那么在前一个事务开始执行之后,这些随后开始执行(但不一定是在第一个事务完成之后)的 select 语句是否有可能返回不同的值?
从 Bank_Account 中选择余额,其中 id = 1;
从 Bank_Account 中选择余额,其中 id = 2;
例如一个返回 0,另一个返回 100
如果没有,什么可以阻止它发生?