先插主表,后插子表会锁超时?

jayli426 2008-07-08 10:17:30
现在有两个表p,f
p 中有个字段 pid,主键
f 中有个字段 fid, 外键,它依赖的是p 表的pid

即p是主表,f是子表

假设有这么一个事务
being tranaction
insert p values (...);
insert f values (...);
commit;
end


insert p 需要在p上加TX锁 那么自然就要在p上加RX
insert f 需要在P上加share锁 同时f上加TX锁,那么自然f上加RX锁

因为 p已经加了RX锁,那么想往f上加share锁总是失败

这样说起来,那么insert f永远都申请不到share锁,导致申请锁超时
我的理解肯定是不正确的。 可是按照我目前理解的理论分析又是这个结果,请大虾指教啊

...全文
73 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧