MySQL利用游标给表插入数据

需求:将查询出来的结果插入到表中。


方式:利用游标存储变量值,然后循环插入到表中。


注意事项:先建立一个过程函数,然后写相应的脚本内容。


脚本内容:


begin


-- 定义接受游标数据变量

DECLARE parentId INT;


 -- 遍历数据结束标志
DECLARE done INT DEFAULT FALSE;


-- 游标

declare cur CURSOR for select can_info_choice_id from candidate_info_choice where parent_id in ( select can_info_choice_id from candidate_info_choice where parent_id = 0 and key_name = 'custom_org_belong' and tenant_id = 2);


-- 将结束标志绑定到游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;


-- 打开游标
OPEN cur;


 -- 开始循环

read_loop: LOOP


 -- 提取游标里的数据,无论他是一个还是多个;

FETCH cur INTO parentId;


-- 声明结束的时候
    IF done THEN
      LEAVE read_loop;
    END IF;
    
-- 做想做的事情
insert into candidate_info_choice (key_name,name,parent_id,tenant_id) values ('custom_org_belong','其他',parentId,2);

END LOOP;
CLOSE cur;
end


--脚本都是建立在过程函数中的。在执行以上脚本的时候,应该先建立一个过程函数。

猜你喜欢

转载自blog.csdn.net/outsanding/article/details/79460414
今日推荐