mysql 存储过程 REPEAT ... UNTIL ... END REPEAT

本文介绍了一种使用游标和SQL语句在数据库中批量插入数据的方法。通过声明变量和游标,从两个关联的表中获取成员信息,并将这些信息插入到目标表中。该过程包括初始化计数器,打开游标进行数据读取,使用循环结构进行数据插入,直到所有记录都被处理。

begin
   declare  b int;
   declare  use_no    varchar(10);
   declare  use_name  varchar(400);
   declare  card_id   varchar(400);
   declare  count     int;
   declare  cur_1  cursor for
                                                     select s2.member_id,
                                                                    s2.realname,
                                                                    s2.card_id
                                                        from  bh_member.mb_member s1,bh_member.mb_member_info s2
                                                        where s1.id = s2.member_id;
   -- DECLARE CONTINUE HANDLER FOR NOT FOUND SET b=1;
    SET b = 0;
    -- (1) sql 赋值
    select count(1)  INTO count  
        from   bh_member.mb_member s1,bh_member.mb_member_info s2
      where  s1.id = s2.member_id;
   
   
    OPEN cur_1;    -- 打开游标
    REPEAT
          -- 从游标中循环取值
        FETCH cur_1 INTO use_no, use_name, card_id;

        insert into zh_ceshi(use_no,use_name,card_id)  values(use_no, use_name, card_id);
        set b = b+1;
        UNTIL  b = count        (不加分号)
    END REPEAT;
    close cur_1;          -- 关闭游标
end
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那些年的代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值