oracle如何防止锁表,Oracle-怎么防止oracle锁表[通俗易懂]

oracle如何防止锁表,Oracle-怎么防止oracle锁表[通俗易懂]只有插入有主键约束的列,或者有唯一约束的列时才可能会阻塞。示例:createtablet(xintprimarykey);session1:insertintotvalues(1);session2:insertintotvalues(1);这时session2就会发生阻塞。解决这种情况最好的方法就是在列上绑定一个序列,如果没有这么做,你也可以创建一个before触发器…

大家好,又见面了,我是你们的朋友全栈君。

只有插入有主键约束的列,或者有唯一约束的列时才可能会阻塞。

示例:create table t(x int primary key);

session 1:

insert into t values(1);

session 2:

insert into t values(1);

这时session 2就会发生阻塞。

解决这种情况最好的方法就是在列上绑定一个序列,如果没有这么做,你也可以创建一个before触发器在插入前捕获resource_busy异常来防止阻塞:

create or replace trigger t_trigger

before insert on t for each row

declare

p_lockid pls_integer;

p_resource_busy exception;

pragma exception_init(p_resource_busy,-54);

begin

p_lockid:=dbms_utility.get_hash_value(to_char(:new.x),1,22554);

if(dbms_lock.request(id=>p_lockid,timeout=>0,lockmode=>dbms_lock.x_mode,release_on_commit=>true)<>0)

then

raise p_resource_busy;

end if;

end;

异常处理开销是很大的,所以最好的解决方法还是用序列来处理。

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150607.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • win7 powershell版本过低问题

    win7 powershell版本过低问题

    2021年10月28日
  • PolSARpro v5.1.3 处理Sentinel-1A SLC数据

    PolSARpro v5.1.3 处理Sentinel-1A SLC数据PolSARproV.5.1处理Sentinel1A数据PolSARpro软件简介准备工作PolSARpro读取Sentinel1A数据PolSARpro软件简介PolSARpro是由法国雷恩第一大学(UniversitédeRennes1)电子和电信学院教授EricPottier1等人带头开发的专门用于PolSAR(极化合成孔径雷达)、Pol-InSAR(极化干涉合成孔径雷…

  • SQL 增加列、修改列、删除列

    SQL 增加列、修改列、删除列

  • 支持js代码的博客有哪些?[通俗易懂]

    支持js代码的博客有哪些?[通俗易懂]1、支持js代码的博客谷歌博客,雅虎奇摩,博客大巴,jimdo博客,和讯博客要等级(230000分).2、现在新浪博客怎么才能有效的使用js呢在新浪博客放广告,现在网络上主要流行的两种方法,这里尽量简单化的给您说明。把广告以代码形式放到免费空间里,然后链接到你的博客教程如下:(1).登陆googleadsense后台,生成广告代码。(2).将代码贴到纪事本文件,另存为….

  • 计算机网络第七版课后习题答案(第一章)(20210321)

    1.计算机网络可以向用户提供哪些服务?(1)连通服务:指计算机网络使上网用户之间可以交换信息,好像这些用户的计算机可以彼此直接连通一样。(2)资源共享:用户可以共享计算机网络上的信息资源、软件资源和硬件资源。2.试简述分组交换的要点。答:分组交换实质上是在“存储——转发”基础上发展起来的。它兼有电路交换和报文交换的优点。分组交换在线路上采用动态复用技术传送按一定长度分割为许多小段的数据—…

  • STM32中重定向printf到SWO口[通俗易懂]

    STM32中重定向printf到SWO口[通俗易懂]Keil中调试:用SWO功能替代printf引用网址:http://blog.csdn.net/xiaolei05/article/details/8526021嵌入式软件开发中的一个基本需求就是能通过终端来输出调试信息,一般可通过2种方式实现:一种是使用串口线连接板上的UART和PC上的COM口,通过PC上的超级终端来查看调试信息;另一种则是采用半主机机制,但有可能不被

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号