现有一个存储过程.首先select 一个条件
然后update 一条记录
问题是如果有二个人同时操作这一存储过程,
可能出现A select 到符合的条件 然后update
B 和A 因为是同时查询 所以查询到的条件是一样的,
B 也update 最终造成A的操作被B改了,
现在要使得A select 和update 一气完成.中间不能打断.
即如果A 操作完成之前,别人就不能操作.
如何实现!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11
然后update 一条记录
问题是如果有二个人同时操作这一存储过程,
可能出现A select 到符合的条件 然后update
B 和A 因为是同时查询 所以查询到的条件是一样的,
B 也update 最终造成A的操作被B改了,
现在要使得A select 和update 一气完成.中间不能打断.
即如果A 操作完成之前,别人就不能操作.
如何实现!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11
begin
exceute immediate 'alter table t lock in XXX mode';(什么锁你看着办)
..
end;
可以加上读锁
使对这个存储过程的调用顺序执行
不就可以了。
这样就是独占的,如果你不释放,别人是不能再申请到这个记录的。