本文更新日期:2019年10月28日

select语法非常简单,相信接触sql的人没有不知道的吧。但是,将select放在事务中,它的处理规则恐怕很多人都不能完全说清楚吧。本文就给大家说一下在事务处理中使用select应该注意的地方。

(1)如果数据库的隔离级别是读已提交(Read Committed),这是很多数据库默认的隔离级别。在这种情况下:

  • 于当前事务的更改,即便是未提交的,select也是可见的。
  • 除了当前事务之外,select只能看到已提交的事务所做出的更改。往往会出现这种情况:同一个事务的两个相同的select语句,但是执行顺序不同,也可能会返回不同的结果。两个select语句执行间隔的时间里,可能有其他的事务提交,数据被修改了。

(2) 如果数据库的隔离级别是可重复读,事务只能看到它开始前已提交的数据。所以,select既不能看到未提交的数据,也不能看到事务在执行时被其它事务更新的已提交的数据。

标签: none

添加新评论