MySql存储过程循环注意事项
2016-07-08 本文已影响391人
max_l
循环的方式
- while
- repeat
- loop
有一种goto形式区块跳转也可以进行循环,不过不推荐
while
WHILE (条件) DO
...
END WHILE;
repeat
REPEAT
...
UNTIL 条件
END REPEAT;
loop
循环名: LOOP
IF 条件 THEN
LEAVE 循环名;
END IF;
...
END LOOP;
重点
- while的循环是先判断循环条件,再执行循环体。repeat是直接执行循环体,结束时再通关UNTIL判断循环条件。loop就相对简单了,你可以将if条件安放在循环体的任意位置。
DECLARE 游标 CURSOR FOR SELECT 字段 FROM 表;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET flagtag = 1;
OPEN 游标
循环
循环体(FETCH * INTO *)
CLOSE 游标;
循环通常会在游标中出现,在执行游标循环时,通常是通过flagtag = 1;这样的条件来判断遍历结束。使用repeat时,如果不提前判断flagtag,将会多执行一次,所以执行repeat循环时,需要在这之前进行循环条件判断。