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