暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 批量执行存储过程

原创 15666777360 2021-08-07
1391

CREATE DEFINER=admin@% PROCEDURE update_account_info()
BEGIN-- 定义存储过程变量
DECLARE
rowIds BIGINT ( 20 );
DECLARE
lineNames VARCHAR ( 255 );
DECLARE
regions VARCHAR ( 255 );
DECLARE
stopCur INT DEFAULT 0;-- 定义游标(更新指定部分数据)
DECLARE
cur CURSOR FOR (
SELECT
t2.row_id,
t.ta_name_of_production_line AS line_name,
t.region
FROM
account_info t2
LEFT JOIN taiwan_district_manager t ON t2.pubtran_code = t.taiwan_District_number
WHERE
t2.STATUS = ‘0’
LIMIT 0,
50000
);-- 定义游标结束,当遍历完成时,将stopCur设置为null?,也可以写成 DECLARE CONTINUE HANDLER FOR SQLSTATE ‘02000’ SET stopCur = null;
DECLARE
CONTINUE HANDLER FOR NOT FOUND
SET stopCur = NULL;-- 开游标?
OPEN cur;-- 游标向下走一步,将查询出来的两个值赋给定义的两个变量
FETCH cur INTO rowIds,
lineNames,
regions;-- 循环体
WHILE
( stopCur IS NOT NULL ) DO-- 更新对应关系表数据
UPDATE account_info
SET line_name = lineNames,
region = regions,
STATUS = ‘1’
WHERE
row_id = rowIds;-- 游标向下走一步
FETCH cur INTO rowIds,
lineNames,
regions;

END WHILE;-- 关闭游标
CLOSE cur;

END

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论