database - 当整个表被删除sql锁定时,oracle是否允许在表上选择
问题描述
当 oracle 执行删除 sql(没有 where 子句)时,它会锁定整个表。因此,当特定用户会话从表中删除数据时,如果在该时间段内,oracle 是否允许任何其他用户会话在表被锁定时从同一个表中读取数据?
delete from tran_records;
在乐观和悲观锁定中,上述场景的行为会有什么不同吗?
解决方案
读者永远不会(b)锁定,所以 - 是的,select
将工作,该用户将看到表中的所有数据 UNTILdelete
操作已提交。然后没有人会看到任何东西,因为表中没有数据(这里不讨论闪回)。
推荐阅读
- javascript - 在 CSS 中添加 .classA 和 .classB.classA 有什么区别?
- ios - 为什么从 Spring Boot 中检索到的图像没有显示在 SwiftUI 视图中?
- python-3.x - 当前字体中缺少字形 144
- spring-boot - 为什么反应式端点拒绝非反应式端点接受的请求?
- python - 使用 Selenium 刮取 ingramer 时出错
- node.js - 尽管视图初始化,但有时仍显示已删除的项目 - Vue,Node.js
- assembly - 函数序言中的“mov rbp, rsp”
- wordpress - Wordpress 登录只会刷新多个用户管理器插件
- c# - 如何拆分包含方括号和空格的字符串
- android - 如何在单独的线程中分析来自 android Cursor 的数据