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;

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

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Solaris 10网络服务

    Solaris 10网络服务

    2021年7月23日
  • matlab插值拟合案例,matlab插值与拟合

    matlab插值拟合案例,matlab插值与拟合《matlab插值与拟合》由会员分享,可在线阅读,更多相关《matlab插值与拟合(10页珍藏版)》请在人人文库网上搜索。1、实验2插值与拟合实验内容:1.三种插值方法2用Matlab计算插值3拟合的基本原理4用Matlab拟合曲线实验目的:掌握插值与拟合方法一、概念的引入1.插值与拟合在现实生活中的应用l机械制造:汽车外观设计l采样数据的重新建构:电脑游戏中场景的显示,…

    2022年5月18日
  • Mac修改redis密码[通俗易懂]

    Mac修改redis密码[通俗易懂]由于我长时间使用redis,结果今天启动redis服务,密码给活活忘记了,那么如何在Mac本地修改redis密码,操作如下Redis并没有像MySQL或者是Oracle那样的严格安全校验机制,所以修改起来非常容易,以下提供两种修改方式:停止Redis后重置密码(永久有效)若没有运行Redis,则直接修改Redis的配置文件(默认的安装位置);如果是手动编译的代码请前往相应的目录,并修改redis.conf。Macsudovim/usr/local/redis-6.0.

    2022年9月6日
  • 电脑WindowsUDP53绕过校园网认证登陆(同时可进内外网教程)

    电脑WindowsUDP53绕过校园网认证登陆(同时可进内外网教程)管理员命令行输入:routeadd-p172.16.0.0mask255.255.0.0172.16.180.254加粗的两个改成你自己的,第二个加粗是默认网关!第一个不知怎么叫。。仔

    2022年10月31日
  • Android开发笔记(序)写在前面的目录[通俗易懂]

    知识点分类一方面写写自己走过的弯路掉进去的坑,避免以后再犯;另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平。因此博主就想,入门的东西咱就不写了,人不能老停留在入门上;其次是想拾缺补漏,写写虽然小众却又用得着的东西;另外就是想以实用为主,不求大而全,但求小而精;还有就是有的知识点是java的,只是Android开发也会经常遇上,所以蛮记下来。个人的经验…

    2022年4月14日
  • java中经常使用的日期格式化(全)「建议收藏」

    java中经常使用的日期格式化(全)

    2022年2月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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