首页 > 解决方案 > 当整个表被删除sql锁定时,oracle是否允许在表上选择

问题描述

当 oracle 执行删除 sql(没有 where 子句)时,它会锁定整个表。因此,当特定用户会话从表中删除数据时,如果在该时间段内,oracle 是否允许任何其他用户会话在表被锁定时从同一个表中读取数据?

delete from tran_records;

在乐观和悲观锁定中,上述场景的行为会有什么不同吗?

标签: databaseoracledatabase-locking

解决方案


读者永远不会(b)锁定,所以 - 是的,select将工作,该用户将看到表中的所有数据 UNTILdelete操作已提交。然后没有人会看到任何东西,因为表中没有数据(这里不讨论闪回)。


推荐阅读