oracle读不阻塞写带来的问题

Oracle数据库中,读操作不会阻塞写操作,反之亦然,除非涉及相同数据行的更新。这种并发模式可能导致资源同时被多个用户访问。为确保独占资源,可以使用行级锁定机制,例如通过`FOR UPDATE`子句锁定记录,防止其他事务在同一时间段内修改。文中通过创建资源调度表和相关过程展示了如何实现类似锁门的概念,以避免资源冲突。
摘要由CSDN通过智能技术生成

1.oracle 读是不会阻塞写的;写也不会阻塞读;只有修改同一行数据的时候,两个写操作才会发生阻塞,这种情况下,只有写1提交了,写2才能操作。

2.读写互相不阻塞,这会带来一个问题。

   如果想确保某些时刻,资源只能被一个用户访问,你需要多做些事情。打个比方,你上厕所的时候,不需要有人打扰吧,这时候你应该怎么办?把门锁上。oracle也这样。下面用一个例子说明。

 create table resources(name varchar2(20) primary key);

 create table schedules(resource_name varchar2(20),start_date date not null,end_date date not null,check(start_date < end_date),primary key(resource_name,start_date));

 insert into resources values('厕所');


过程:

 procedure schedule_resource(i_resource_name in varchar2,
                              i_start_date    in date,
                              I_end_date      in date) as
    v_count         number;
    v_resource_name resources.name%type;
  begin
    select name
      into v_resource_name
      from resources re

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值