1

我对这里的文档有点困惑。我有一笔交易,其中

  1. 开始交易
  2. 做了一些更新
  3. 做了一些选择
  4. 做了更多更新
  5. 犯罪

我希望我在第3步中的选择可以看到第2步中的更新结果,但我希望能够回滚整个事情。

已提交的读取似乎意味着选择仅显示已提交的数据,而可重复读取似乎意味着所有后续选择将看到与第一次选择时存在的相同数据 - 因此忽略我的更新。read uncommitted似乎做了正确的事情,但是:“但可能会使用行的早期版本”——这也是不可接受的,因为我的选择必须看到我的更新结果。

序列化真的是我唯一的希望吗?

我正在处理这里的文档

4

1 回答 1

2

事务隔离级别仅描述并发事务之间的交互。对于任何隔离级别,您在同一事务中更新的内容将在您从该事务中重新选择它们时更新。

在您的情况下,正确的隔离级别似乎是已提交的,因此您可以随时回滚,并且未提交的数据在其他事务中不可见。

于 2009-10-06T08:55:18.997 回答