多选题
我们需要锁定来阻止会话同时处理同一个数据。如果一个用户更新一行时没有指定任何锁定,会对其他会话带来什么影响?
A、
其他会话可以读写其他行,但不能读写第一个会话处理的行
B、
其他会话可以读取第一个会话处理的行,但不能写入它
C、
其他会话可以读写第一个会话处理的行,但在第一个会话提交或回滚之前,会挂起COMMIT
D、
其他会话不能写入任何行,因为默认情况下,第一个会话在整个表上施加了一个锁
【正确答案】
B
【答案解析】
默认情况下,行独占锁禁止写入行,但不禁止读取行。
A、C和D是不正确的。A是不正确的,因为永远可以读取更新的行(采用其预更新的形式)。C是不正确的,因为阻塞的是DML,而不是COMMIT。D是不正确的,因为默认的互斥锁只存在于受影响的行上。
提交答案
关闭