分类:while、loop、repeat 循环控制: iterate:类似于continue,继续,结束本次循环,继续等下一次 legel:类似于break 跳出,结束当前所有的循环
1、while 语法: while 循环条件 do 循环体; end while 标签; 2、loop 语法: 标签 loop 循环体; end loop 标签; 可以用来模拟简单的死循环 3、repeat 语法: 标签 repeat 循环体; until 结束循环的条件 end repeat ;
1、while的使用
案例1:批量插入,根据次数插入到admin表中多条记录
DELIMITER $ CREATE PROCEDURE pro_while(in insertCount int) BEGIN declare i int default 1; while i<=insertCount do insert into admin(username,`password`) values(concat('test',i),'123456'); set i=i+1; end while; END $ DELIMITER ;调用:call pro_while(20);
2、while leave使用(类似于break)
案例2:批量插入,根据次数插入到admin中,如果次数>20次,测停止
DELIMITER $ CREATE PROCEDURE pro_while2(IN insertCount INT) BEGIN DECLARE i INT DEFAULT 1; a:WHILE i<insertCount DO INSERT into admin(username,`password`) VALUE (concat('test1',i),'234343'); IF i>=20 THEN LEAVE a; END IF; #使用了if需要结尾 SET i=i+1; END WHILE a; #使用了while 需要结尾 END $ DELIMITER ;调用:call pro_while2(204);
3、while iterate(相当于continue)
DELIMITER $ CREATE PROCEDURE pro_whileIterate(IN insertCount INT) BEGIN DECLARE i INT DEFAULT 0; a:WHILE i<insertCount DO SET i=i+1; -- if i%2==0 THEN iterate a; IF MOD(i,2)!=0 THEN ITERATE a; END IF; INSERT INTO admin(username,`password`) values (concat('test1',i),'234343'); END WHILE a; END $ DELIMITER ;调用:call pro_whileIterate(100);