我给你简单改写一下,你参考一下
declare
Type Type_AA Is Table Of table_2aa%Type Index By Binary_Integer;
a_Type_AA Type_AA ;
cursor cur_ALL is select baa from table_1 a,table_2 b where aid=bid;
begin
open cur_ALL;
loop
fetch cur_ALL Bulk Collect Into a_Type_AA limit 1000;
forall i in 1a_Type_AAcount
updae table_1 a set aaa=a_Type_AA(i) where aid in (select cid from table_2 c) and trim(aaa) is null;
commit;
exit when cur_ALL%notfound or cur_ALL%notfound is null;
end loop;
close cur_ALL;
exception
when others then
if cur_ALL%isopen then
close cur_ALL;
end if;
end;
这样每次只会更新1000条,而且是批量插入,没插入1000条更新一次
但是我建议你的sql要优化一下where aid in (select cid from table_2 c)这部分相当影响性能。for($i=0;$i<10;$i++){
$row=mysql_query("select from level1");
}
这样就是循环10次了。如果要其他 数修改$i<多少就行了。不过不建议使用循环sql。效率不好。如果是正式网站,容易卡死
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)