Oracle行级锁的特殊用法简析
⒊对于交互式应用程序非常有用,因为这些用户不能等待不确定
则这一句sql在执行时,永远处于等待状态,除非窗口1中sql被提交或回滚。
4.
create table t(a varchar2(20),b varchar2(20)); insert into t values('1','1'); insert into t values('2','2'); insert into t values('3','3'); insert into t values('4','4');
在窗口1中执行:
select for update 也就如此了吧,insert、update、delete操作默认加行级锁,其原理和操作与select for update并无两样。
select * from t where rownum《6 nowait skip Locked;
现在我们看看执行如下操作将会发生什么呢?
这一点问题也没有,因为行级锁不会影响纯粹的select语句
示例:
则在执行此sql时,直接报资源忙的异常。
在使用INSERT、UPDATE、DELETE 和SELECT…FOR UPDATE 等 语句时,Oracle会自动应用Oracle行级锁行级锁锁定。SELECT...FOR UPDATE 语句允许用户每次选择多行记录进行更新,这些记录会被锁定,且只能由发起查询的用户进行编辑。只有在回滚或提交事务之后,锁定才会释放,其他用户才可以编辑这些记录。
复制代码 代码如下:
select for update of,这个of子句在牵连到多个表时,具有较大作用,如不使用of指定锁定的表的列,则所有表的相关行均被锁定,若在of中指定了需修改的列,则只有与这些列相关的表的行才会被锁定。复制代码 代码如下:
则在等待6秒后,报 资源忙的异常。如果我们执行sql4
WAIT 子句指定等待其他用户释放锁的秒数,防止无限期的等待。
Oracle有许多的锁,各种锁的效用是不一样的。下面重点介绍Oracle行级锁,Oracle行级锁只对用户正在访问的行进行锁定。可以更好的保证数据的安全性。
SELECT ... FOR UPDATE [OF column_list][WAIT n|NOWAIT][SKIP LOCKED];
1. select * from t where a='1';
复制代码 代码如下:
select * from t where rownum 《3 nowait skip Locked; 在窗口2中执行:SELECT...FOR UPDATE 语句的语法如下:
再运行sql2
select * from t where a='1' for update;
在2窗口中运行sql1
复制代码 代码如下:
复制代码 代码如下:
复制代码 代码如下:
则执行sql时,即不等待,也不报资源忙异常。“使用FOR UPDATE WAIT”子句的优点如下:
在plsql develope中打开两个sql窗口,
⒉允许应用程序中对锁的等待时间进行更多的控制。
复制代码 代码如下:
现在执行如下操作:2. select * from t where a='1' for update;
其中:
如何才能让sql2不等待或等待指定的时间呢? 我们再运行sql3
复制代码 代码如下:
Oracle行级锁是一种排他锁,防止其他事务修改此行,但是不会阻止读取此行的操作。
在1窗口中运行sql
如果该用户正在修改某行,那么其他用户就可以更新同一表中该行之外的数据。
select * from t where a='1' for update nowait;
select * from t where a='1' for update nowait skip Locke d;
⒈防止无限期地等待被锁定的行;
若执行
OF 子句用于指定即将更新的列,即锁定行上的特定列。
相关热词: oracle
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/sql/oracle/3596.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Window下Oracle Database 11g 发行
时间:2020-12-29
-
Oracle如何实现like多个值的
时间:2020-12-29
-
maven添加oracle依赖失败问题
时间:2020-12-29
-
OracleRAC基本概念及入门
时间:2020-12-29
-
Azure File Storage 基本用法
时间:2020-12-26
-
Oracle 权限(grant revoke)
时间:2020-12-26
-
Azure Queue Storage 基本用法
时间:2020-12-26
-
如何对比迁移前后的Orac
时间:2020-12-26
热门文章
-
Azure Queue Storage 基本用法 Azure Storage 之
时间:2020-12-26
-
Oracle存储过程编程详解
时间:2020-12-07
-
win10下oracle 11g安装图文教程
时间:2020-12-25
-
oracle 数据库学习 基本结构介绍
时间:2020-12-13
-
Azure File Storage 基本用法 Azure Storage 之 F
时间:2020-12-26
-
windows使用sqlpus连接oracle 数据库的教程图
时间:2020-12-25
-
Window下Oracle Database 11g 发行版2安装教程
时间:2020-12-29
-
Oracle解锁的方式介绍
时间:2020-12-14
-
linux下oracle设置开机自启动实现方法
时间:2020-12-13
-
Oracle学习记录之使用自定义函数和触发器
时间:2020-12-07
