mysql存储过程 loop循环

本文介绍使用PL/SQL中的loop、leave与iterate语句来控制循环流程的方法,并通过一个具体的存储过程示例展示了如何利用这些控制语句来处理数据库中的记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


-- loop 与 leave,iterate 实现循环  
-- loop 标志位无条件循环,

      leave 类似于break 语句,跳出循环,跳出 begin end,

       iterate 类似于continue ,结束本次循环


create procedure pro12()

 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     --  如果不加该行的话将直接报错.No data - zero rows fetched, selected, or processed 

    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;

    loop_label: loop
          -- 从游标中循环取值
          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;
          if b = count    then
              leave loop_label;

          end if;


    end loop;
    CLOSE cur_1;
 end;



-- loop 与 leave,iterate 实现循环  
-- loop 标志位无条件循环,leave 类似于break 语句,跳出循环,跳出 begin end,iterate 类似于continue ,结束本次循环
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值