请教一个关于循环的问题,删除数据

jakenlian jakenlian 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我有一张有数千万数据的大表,现在想删掉一些没用的历史数据,如果用常规删法的话,会很慢,如:
delete from table_a t where t.id<5000000;
我的表有5个字段,其中id有索引。
删了两个小时,也没有完成。

考虑了一下,想用一个过程,让服务器自己空闲的时候,自己去删:

create or replace procedure self_procedure is
begin
for v in 4805000000 .. 4810000000 loop
delete from SYS2SYN_DATA_DETAIL t where t.master_id = v;
commit;
end loop;
end;

这样没似乎可以实现,但是每次只删除一条,不知道会删到什么时候,而且磁盘操作似乎有些频繁。
于是想一次多删除一些:

create or replace procedure self_procedure_muti is
begin
for v in 4805000000 .. 4810000000 loop
delete from SYS2SYN_DATA_DETAIL t where t.master_id < v;
v:=v+1000;
commit;
end loop;
end;

可是这个过程报错了,“表达式v不能用作赋值目标”。

请问,各位有什么好的办法没有?
...全文

相关推荐

java中循环删除list中元素的方法总结

(i); } } ``` 这种方法存在的问题是,当你删除一个元素后,列表的大小会减小,但循环的索引仍然在增加。

weixin_38666823

JavaScript中关于for循环删除数组元素内容时出现的问题

本文将详细探讨在使用for循环删除数组元素时可能会遇到的问题,并提供解决方案。在上文提到的代码例子中,创建了一个含有重复元素的数组var arr=[1,1,1,2,2];。

weixin_38699593

解决JAVA遍历List集合,删除数据时出现的问题

解决方法解决JAVA遍历List集合时删除数据出现的问题有多种方法,下面我们将对这些方法进行详细的讲解:解决方法1:每移过一次后,再把 i 移回来在遍历List集合时,我们可以使用for循环来删除元素,

weixin_38717843

yuesefu.rar_创建一个循环链表_按指定位置删除_循环单链表_约瑟夫环

在计算机科学领域,数据结构是基础且至关重要的概念,它为高效地存储和处理数据提供了方法。循环链表是其中一种特殊类型的数据结构,而约瑟夫环问题则是基于这种数据结构的一个经典算法问题。

weixin_42653672

Python中list循环遍历删除数据的正确方法

在初学Python时,可能会遇到这样的问题:当我们试图在遍历list的过程中删除符合条件的数据项时,代码运行会报错,因为list的索引在删除元素后发生了变化,导致程序尝试访问一个已经不存在的索引位置。

weixin_38695293
评论 8
收藏 已收藏
分享
返回顶部
jakenlian
Oracle 高级技术 3,499 成员 18,710 内容