有关rownum的问题,向高手请教。

wxxin 2002-10-08 03:25:05
一个有关数据出库的问题。
现有一张上百万的表,分几次出库
每次用rownum来限定每次出库的数据量

inser into A select * form B where rownum <=100000;
delete from B where rownum <=100000;
(A,B完全一致)

若只是一个进程在操作,B表中删掉的10万条是否就是入到A表中的那10万条?
理论上来说select选出的结果集应是随机的,那么删除的就不一定完全是前面入的。
当然用rowid来定位最保险,但对现有系统改动太大,不知这种操作在大数据量情况下出错的概率有多大。
...全文
103 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zousky 2002-10-09
  • 打赏
  • 举报
回复
up
zcs_1 2002-10-08
  • 打赏
  • 举报
回复
B表有没有关键字,如果有的话,可以用关键字来控制删除,这样更保险,如:

DELETE FROM b WHERE b.id IN(SELECT id FROM a);
zhaoyongzhu 2002-10-08
  • 打赏
  • 举报
回复
B表中删掉的10万条肯定就是入到A表中的那10万条。
这样应该没有问题,不过一次提交10万条纪录多了点吧。你的B表没有时间字段,用时间好点吧。
luckysxn 2002-10-08
  • 打赏
  • 举报
回复
没有问题。

17,381

社区成员

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

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