我有一个包含索引列的多行表,我订购了。我有事务更新此特定表的单行并更改该索引列的值(以及该行中的其他一些值)
我的问题是:
如果我在交易更新时尝试阅读,我可以这样做吗?或者在事务完成之前是否阻止读取?
我做的交易专门更新了索引列,我正在使用"顺序排序"查询。 SELECT * ... ORDER BY查询可以运行正常而不被这些事务阻止吗?或者它是否必须等到修改我正在整理的索引列的事务完成?
答案 0 :(得分:0)
您询问的是交易行为,以及完整的最佳方式 了解系统的行为是阅读Transaction Isolation Levels并查看数据库正在运行的事务隔离级别。
一般情况下,你会发现当一行被更新时,它会被一个独占锁锁定,因此在事务完成之前就不可用了。
更直接地回答您的问题。
检查您是否在Read committed或read uncommitted中运行,这是 可以有一个区别,你是否可以读取行 它正在更新。