【发布时间】:2015-12-21 08:31:35
【问题描述】:
假设我有一个表 (Table1),其中包含 value=0 的 Value 字段。
然后两个用户(USER1 和 USER2)同时运行下面的事务
BEGIN
UPDATE Table1 SET Value=Value+1;
UPDATE Table1 SET StatusField='Y' WHERE Value=2;
COMMIT;
如果命令按以下顺序执行
USER1 开始交易
USER2 开始交易
USER1 结束交易;
USER2 结束交易;
statusfield 会设置为 Y 吗?
注意!这不是一个真实的例子,你可能永远不想使用这样的代码,但我只是想了解事务是如何工作的。换句话说,我想知道的是,如果两个事务同时开始并且其中一个完成,那么已经开始的事务是否会知道第一个事务所做的更改?
【问题讨论】: