Oracle table-lock的5种模式

Oracle中的锁定可以分为几类:DML lock(data lock),DDL lock(dictionary lock)和internal lock/latch。DML lock又可以分为ro

Oracle中的锁定可以分为几类:DML lock(data lock),DDL lock(dictionary lock)和internal lock/latch。
DML lock又可以分为row lock和table lock。row lock在select.. for update/insert/update/delete时隐式自动产生,而table lock除了隐式产生,也可以调用lock table in

name来显示锁定。
如果不希望别的session lock/insert/update/delete表中任意一行,只允许查询,可以用lock table table_name in exclusive mode。(X)这个锁定模式级别最高,并发度最小。

如果允许别的session查询或用select for update锁定记录,不允许insert/update/delete,可以用lock table table_name in share row exclusive mode。(SRX)

如 果允许别的session查询或select for update以及lock table table_name in share mode,只是不允许insert/update/delete,可以用lock table table_name in share mode。(share mode和share row exclusive mode的区别在于一个是非抢占式的而另一个是抢占式的。进入share row exclusive mode后其他session不能阻止你insert/update/delete,,而进入share mode后其他session也同样可以进入share mode,进而阻止你对表的修改。(S)

还有两种锁定模式,row share(RS)和row exclusive(RX)。他们允许的并发操作更多,一般直接用DML语句自动获得,而不用lock语句。

linux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1960896.html

(0)
上一篇 2025年2月23日 05:06:17
下一篇 2025年2月23日 05:06:32

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • sqlplus命令找不到怎么解决

    为了解决 SQL*Plus 命令找不到的问题,可采取以下步骤:1. 检查路径,确保已安装在系统路径中;2. 设置环境变量 ORACLE_HOME,指向安装目录父目录;3. 刷新环境,使更改生效;4. 验证安装是否成功;5. 检查执行文件权限…

    2025年2月23日
    100
  • sql中log on什么意思

    SQL 中的 LOG ON 用于建立数据库连接,允许用户使用指定的凭据(如用户名和密码)访问特定数据库。语法:LOG ON [AS] {用户名 | 连接名称} [WITH 密码 | WITHOUT PASSWORD] 可使用不同的参数指定用…

    2025年2月23日
    100
  • sql中varchar默认长度是多少

    SQL 中 VARCHAR 数据类型的默认长度因 DBMS 而异,通常为:MySQL:255 个字符PostgreSQL:255 个字符Microsoft SQL Server:1 个字符(必须显式指定)Oracle:2000 个字符(如果…

    2025年2月23日
    100
  • sqlplus未找到命令怎么解决

    在 SQLPlus 中遇到“未找到命令”错误时,解决方案包括:1. 检查拼写和大小写;2. 验证命令语法;3. 检查环境变量 PATH;4. 查找别名;5. 安装最新版本;6. 检查权限;7. 其他问题排查。 SQLPlus 未找到命令:解…

    2025年2月23日
    100
  • sqlplus命令的用法

    摘要:SQLPlus 是一种 Oracle 数据库交互式工具,用于连接数据库并执行 SQL 语句。可通过命令行启动,命令结构包括 SQL 语句、分号和换行符。基本命令:CONNECT:连接数据库。DISCONNECT:断开连接。SELECT…

    2025年2月23日
    100
  • sqlplus怎么删除命令

    在 SQLplus 中,可以通过以下方法删除已输入的命令:使用退格键逐个删除字符。使用 Ctrl+C 组合键清除当前命令行。使用 Esc 键取消正在进行的命令。使用向上和向下箭头键浏览命令历史记录,再配合 Home 和 End 键进行删除。…

    2025年2月23日
    100
  • sql中如何进行拼接

    SQL 中可使用多种方法进行字符串拼接,包括使用连接运算符 (+)、CONCAT 函数、|| 运算符(Oracle 和 MySQL)、FORMAT 函数(SQL Server)和 STUFF 函数(SQL Server)。具体选择取决于拼接…

    2025年2月23日
    100
  • sql中rownum是什么意思

    ROWNUM 是 SQL 中的伪列,指示查询结果集中每行的相对位置。它通常与其他列结合使用,实现限制结果集、分页和跟踪行号等目的。需要注意的是,ROWNUM 的值是非持久性的,并且并非所有数据库系统都支持它。 ROWNUM 在 SQL 中的…

    2025年2月23日
    100
  • sql中sno是什么意思

    在 SQL 中,SNO 代表“序列号”,它是数据库系统自动生成的唯一标识符,用于标识表中记录的顺序。它用于排序、检索数据、确保数据完整性和进行 JOIN 操作。SNO 通常隐藏,但一些数据库管理系统(如 PostgreSQL 和 MySQL…

    2025年2月23日
    100
  • sql怎么查看表的索引

    通过查询系统表,可以获取表的索引信息,包括索引名称、是否唯一、索引类型、索引列和行数。常用系统表有:MySQL 的 information_schema.STATISTICS、PostgreSQL 的 pg_indexes、Oracle 的…

    2025年2月23日
    100

发表回复

登录后才能评论