更新丢失或者乐观并发

pjr1007 2009-07-15 05:02:21
我写了个存储过程,WorkInfo是记录所要取的所有任务,存储过程执行的是对WorkInfo进行Update,对TempWorkInfo进行Insert,通过WorkInfo的Havefinishnum来限制只有两个人能操作WorkInfo里面的任务,但是现在在TempWorkInfo中出现了多于两个人取WorkInfo里面的任务记录(多于两个人update了WorkInfo中的同一个任务),我想这是一般的更新丢失或者乐观并发,求教高手这种情况应该怎么处理。
...全文
30 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
pjr1007 2009-07-17
  • 打赏
  • 举报
回复
呵呵 我是个初学者,您能说的明白点吗?具体应该怎么实现,至于悲观加锁,我在游标定义中试过悲观加锁啦,性能那是大大的降低的,不可取啊
pjr1007 2009-07-17
  • 打赏
  • 举报
回复
但是锁定后,性能大大降低啦
inthirties 2009-07-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 inthirties 的回复:]
悲观的类似vss的做法

乐观的类似cvs和subversion的做法
[/Quote]

我们以前对这个lock不是在database级别做的,因为我们的应用来说,用户做edit的时候,其实并没有马上保存,而是在页面上修改好了数据以后才保存的,而对于数据库来说,我们不可能把这条记录从点击edit的时候就上锁,而直到点击save的时候才解锁,如果这样处理的话,对于应用系统来说简直就是灾难,我们的做法,其实是自己做的应用上的锁,当点击edit的时候,其实是应用上的锁,而不是数据库级别的锁,save的时候,去检查这个锁,进行处理。

当然我们的上锁,解锁的策略有多种形式,类似vss和cvs/subversion的都有。但是都是通过应用做的,
pjr1007 2009-07-17
  • 打赏
  • 举报
回复
无语。。。都是这种回答一点不接着说下去的人 汗颜
pjr1007 2009-07-16
  • 打赏
  • 举报
回复
你是不是说要到程序里面去处理,而不是通过数据库的存储过程来处理吗?
pjr1007 2009-07-16
  • 打赏
  • 举报
回复
哦~~~能直接跟我说下 解决这个问题的思想吗?
inthirties 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 pjr1007 的帖子:]
我写了个存储过程,WorkInfo是记录所要取的所有任务,存储过程执行的是对WorkInfo进行Update,对TempWorkInfo进行Insert,通过WorkInfo的Havefinishnum来限制只有两个人能操作WorkInfo里面的任务,但是现在在TempWorkInfo中出现了多于两个人取WorkInfo里面的任务记录(多于两个人update了WorkInfo中的同一个任务),我想这是一般的更新丢失或者乐观并发,求教高手这种情况应该怎么处理。
[/Quote]

对于数据库来说,提交后,才能被查询到,所以要做到你这样的要求,你要通过应用去控制。
liuyi8903 2009-07-16
  • 打赏
  • 举报
回复
对于您的这个问题, 看看tom的书会使你非常清楚这个概念的.

"查询重启动",以及"串行"事务,你自己看.
inthirties 2009-07-16
  • 打赏
  • 举报
回复
悲观的类似vss的做法

乐观的类似cvs和subversion的做法
henreash 2009-07-16
  • 打赏
  • 举报
回复
先锁定了啊记录啊 这样就只能串行执行了。没有丢失更新问题发生了。
suncrafted 2009-07-15
  • 打赏
  • 举报
回复
帮顶了
pjr1007 2009-07-15
  • 打赏
  • 举报
回复
下班之后,继续求教,哎,这个问题不解决相当郁闷啊
pjr1007 2009-07-15
  • 打赏
  • 举报
回复

还有其他方式吗?你这种方法貌似还是照样会出现这个问题的
asdf_ndsc 2009-07-15
  • 打赏
  • 举报
回复
再建 一个表。

里面记录那两个户先获得编辑权。 用户编辑 时先从 这个新表里判断下。
pjr1007 2009-07-15
  • 打赏
  • 举报
回复
求助啊 没人帮忙吗 ?继续帮助 在线等

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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