mysql for循环储存过程

数据库200多万条数据,整表关联更新耗时8个小时没有结果
索性尝试了一下储存过程划分数据循环更新,耗时453秒,真香

delimiter //                    # 定义//为一句sql的结束标志,取消;的所代表的意义
drop procedure if exists test;  # 如果存在名字为test的procedure则删除
create procedure test()         # 创建函数
begin
    declare 许可证号_tmp varchar(50);   # 声明变量
    declare flag int default 0;        # 声明变量
    declare s_list cursor for select 许可证号 from 许可证;   -- 声明游标
    declare continue handler for not found set flag=1;

    open s_list;                       # 打开游标
    fetch s_list into 许可证号_tmp;     # 使用游标
    while flag <> 1 do
      # 此处放置更新语句
      select 许可证号_tmp;
      fetch s_list into 许可证号_tmp; 			
    end while;
    close s_list;                      # 关闭游标

end

//
delimiter ; 

call test();
posted @ 2022-11-22 13:10  meizhengchao  阅读(506)  评论(0编辑  收藏  举报