美文网首页
mysql遍历数组执行更新(存储过程)

mysql遍历数组执行更新(存储过程)

作者: King斌 | 来源:发表于2021-10-20 18:49 被阅读0次

CREATE PROCEDURE init_reportUrl()
BEGIN
DECLARE s INT DEFAULT 0;
DECLARE r_id bigint(10);
DECLARE report CURSOR FOR select distinct id as r_id FROM ReportHotLine ;
-- 声明当游标遍历完后将标志变量置成某个值
DECLARE CONTINUE HANDLER FOR NOT FOUND SET s=1;
-- 打开游标
open report;
-- 将游标中的值赋值给变量,注意:变量名不要和返回的列名同名,变量顺序要和sql结果列的顺序一致
fetch report into r_id;
-- 当s不等于1,也就是未遍历完时,会一直循环
while s<>1 do
-- 执行业务逻辑
UPDATE wh_csyx.dy_pres30207800013_001_local a
JOIN ReportHotLine b ON a.gdId = b.ID
AND b.createtime = ( SELECT max( createtime ) FROM ReportHotLine WHERE ID = r_id )
SET blms = b.banliInfo where a.gdId =r_id;

-- 将游标中的值再赋值给变量,供下次循环使用
fetch report into r_id;
-- 当s等于1时表明遍历以完成,退出循环
end while;
-- 关闭游标
close report;
END;
call init_reportUrl();

相关文章

网友评论

      本文标题:mysql遍历数组执行更新(存储过程)

      本文链接:https://www.haomeiwen.com/subject/fctxaltx.html