# ---- repeat ----
DELIMITER $$
CREATE PROCEDURE test_repeat()
BEGIN
DECLARE a INT DEFAULT 10;
REPEAT
SET a = a - 1;
UNTIL a < 5
END REPEAT;
SELECT a;
END $$
DELIMITER ;
# 调用
CALL test_repeat();
# 删除
DROP PROCEDURE test_repeat;
注意使用repeat的时候,在判断条件(until条件)的那一行句末不加分号,这个很容易出错!
# ---- loop ----
DELIMITER $$
CREATE PROCEDURE test_loop()
BEGIN
DECLARE t INT DEFAULT 0;
label:LOOP
SET t = t + 1;
IF t > 10 THEN LEAVE label;
END IF;
END LOOP label;
SELECT t;
END $$
DELIMITER ;
# 调用
CALL test_loop();
# 删除
DROP PROCEDURE test_loop;
注意 loop 一般要和一个标签(此处为label,名称可以自定义,不过要保证前后一致)一起使用,且在 loop 循环中一定要有一个判断条件,能够满足在一定的条件下跳出 loop 循环(即 leave )!
END 2018-05-22 13:15:09
原文:https://www.cnblogs.com/hider/p/9071561.html