数据库MySQL-循环结构

数据库MySQL-循环结构

#二、循环结构

分类:
whilelooprepeat

循环控制:
iterate类似于 continue,继续结束本次循环,继续下一次
leave 类似于break,跳出,结束当前所在的循环
*/
#1、while

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

*/
#2、loop

语法:
【标签:】loop
	循环体;
end loop 【标签】;
可以用来模拟简单的死循环
*/

#3、repeat

语法:
【标签:】repeat
	循环体;
until 结束循环的条件;
end repeat 【标签】;
*/

#1、没有添加循环控制语句
#案例:批量输入,根据次数插入到admin表中多条记录
CREATE PROCEDURE pro_while(IN insertCount INT)
BEGIN
	DECLARE i INT DEFAULT 1;
	WHILE i <= insertCount DO
		INSERT INTO admin(username,PASSWORD) VALUE(CONCAT('Rose',i),'666');
		SET i = i + 1;
	END WHILE;
END$

CALL pro_while(100)$

#2、添加leave语句
#案例:批量输入,根据次数插入到admin表中多条记录,如果次数>20则停止
TRUNCATE TABLE admin$
CREATE PROCEDURE test_while1(IN insertCount INT)
BEGIN
	DECLARE i INT DEFAULT 1;
	a:WHILE i <= insertCount DO
		INSERT INTO admin(username,PASSWORD) VALUES(CONCAT('xiaohua',i),'0000');
		IF i >= 20 THEN LEAVE a;
		END IF;
		SET i = i + 1;
	END WHILE a;
END$
CALL test_while1(100)$

#3、添加iterate语句
#案例:批量输入,根据次数插入到admin表中多条记录,只插入偶数次
TRUNCATE TABLE admin$
CREATE PROCEDURE test_while2(IN insertCount INT)
BEGIN
	DECLARE i INT DEFAULT 0;
	a:WHILE i <= insertCount DO
		SET i = i + 1;
		IF MOD(i,2) = 1 THEN ITERATE a;
		END IF;
		INSERT INTO admin(username,PASSWORD) VALUES(CONCAT('xiaohua',i),'0000');
		
	END WHILE a;
END$
CALL test_while2(100)$




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值