表A (id number,b_id number,detail varchar2(100))
其中b_id 是外部关键字,id是主关键字
表B (id number)
其中id是主关键字
有如下测试记录
insert into b (id) values (1);
insert into b (id) values (2);
insert into b (id) values (3);
insert into b (id) values (4);
insert into b (id) values (5);
commit;
insert into a (id,b_id,detail) values (1,2,'test');
insert into a (id,b_id,detail) values (2,3,'test');
insert into a (id,b_id,detail) values (3,2,'test');
insert into a (id,b_id,detail) values (4,1,'test');
commit;
现在在session1中通过procedure中实现update a set b_id=b_id+2 where id<=2操作
如果有另外一个session2执行delete from b where id>=4操作
如果这两个session并发,且session1早于session2开始,晚于session2结束,关键是update操作晚于delete操作。
怎样通过RS锁保障session1的执行从而使得session2失败。
其中b_id 是外部关键字,id是主关键字
表B (id number)
其中id是主关键字
有如下测试记录
insert into b (id) values (1);
insert into b (id) values (2);
insert into b (id) values (3);
insert into b (id) values (4);
insert into b (id) values (5);
commit;
insert into a (id,b_id,detail) values (1,2,'test');
insert into a (id,b_id,detail) values (2,3,'test');
insert into a (id,b_id,detail) values (3,2,'test');
insert into a (id,b_id,detail) values (4,1,'test');
commit;
现在在session1中通过procedure中实现update a set b_id=b_id+2 where id<=2操作
如果有另外一个session2执行delete from b where id>=4操作
如果这两个session并发,且session1早于session2开始,晚于session2结束,关键是update操作晚于delete操作。
怎样通过RS锁保障session1的执行从而使得session2失败。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货