批量UPDATE两个表中的数据.

danyilanqingting 2009-06-16 02:30:54
有两张表分别为: problem, answer
problem 表中的字段:problem 表中含有ANSWERNUMBER字段

answer表中含有PROBLEM 和 ASKSTATE两个字段,其中PROBLEM 就是problem 表中的id

problem 表中ANSWERNUMBER字段是根据answer表中country(PROBLEM )and ASKSTATE != -1得出的
我用的是Oracle数据库,在数据量小的情况下,更新表problem是没问题的,但是大数据量的话,就会锁住数据苦衷的表,请各位高手指点怎么写SQL文,才能大批量的修改problem 表中ANSWERNUMBER字段?
...全文
163 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
newpeepe 2009-06-26
  • 打赏
  • 举报
回复
我建议把update 拆分为delete 和insert 同时500条一commit
xizenyin 2009-06-25
  • 打赏
  • 举报
回复
学习~
wdy 2009-06-25
  • 打赏
  • 举报
回复
设置每次删除的条数,比如一次只删除500条,commit,再删除..
Richard345265669 2009-06-25
  • 打赏
  • 举报
回复
触发器或者Job吧
sinusoid 2009-06-24
  • 打赏
  • 举报
回复
你表述有点不清楚。
可以考虑:
update problem 表之前,先锁定要修改的范围
declare
rec_problem problem%row_type;
begin
...
update problem into rec_problem where .... for update;
--执行更新
...
inthirties 2009-06-16
  • 打赏
  • 举报
回复
从数据库角度来看,类似你这样的设计没有很好的办法。

可以从应用的角度优化一下。

17,137

社区成员

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

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