返回顶部

MySql存储过程循环语句使用

一、while循环

1、格式

【标签】while 循环条件 do
      循环体;
end while 【标签】;

 

2、操作

案例一:满足某种条件终止循环

DROP PROCEDURE IF EXISTS proc1;
delimiter $$
create procedure proc1(in in_count int)
begin

  DECLARE i int DEFAULT 1;

    label:while i<=in_count do
    
    if i=6 then     # 当i等于6就终止循环
     LEAVE label;
  end if;
    INSERT into users(user_name,sex) VALUES(CONCAT('用户名','',i),CONCAT('性别','',i));
    
    set i=i+1;
    end while label;
    
end $$ 
delimiter ;


call proc1(10);

案例二:满足某种条件跳过此处循环,并继续执行循环操作

DROP PROCEDURE IF EXISTS proc1;
delimiter $$
create procedure proc1(in in_count int)
begin

  DECLARE i int DEFAULT 0;

    label:while i<in_count do
    set i=i+1;
    if i=6 then     # 当i等于6就跳出此次循环,继续执行
     ITERATE label;
  end if;
    INSERT into users(user_name,sex) VALUES(CONCAT('用户名','',i),CONCAT('性别','',i));
    
    
    end while label;
    
end $$ 
delimiter ;


call proc1(10);

 

 

二、repeat循环

1、格式

【标签】: repeat
     循环体;
until 条件表达式
end repeat 【标签】;

 

2、操作

DROP PROCEDURE IF EXISTS proc1;
delimiter $$
create procedure proc1(in in_count int)
begin

  DECLARE i int DEFAULT 1;

    label:repeat
    INSERT into users(user_name,sex) VALUES(CONCAT('用户名','',i),CONCAT('性别','',i));
    
    set i=i+1;
    UNTIL i>in_count
    end repeat label;
    
end $$ 
delimiter ;


call proc1(10);

 

三、loop循环

1、格式

 

【标签】:loop
   循环体;
 if 条件表达式 then
   leave 【标签】
 end if;
end loop;

 

2、操作

DROP PROCEDURE IF EXISTS proc1;
delimiter $$
create procedure proc1(in in_count int)
begin

  DECLARE i int DEFAULT 0;

    label:loop
    set i=i+1;
    
    if i=5 then
    LEAVE label;
    end if;
    
    INSERT into users(user_name,sex) VALUES(CONCAT('用户名','',i),CONCAT('性别','',i));
    end loop;
    
end $$ 
delimiter ;


call proc1(10);

 

posted @ 2022-05-28 18:14  SportSky  阅读(939)  评论(0编辑  收藏  举报
作者:SportSky 出处: http://www.cnblogs.com/sportsky/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果觉得还有帮助的话,可以点一下右下角的【推荐】,希望能够持续的为大家带来好的技术文章!想跟我一起进步么?那就【关注】我吧。