MySql存储过程循环注意事项

循环的方式


  • while
  • repeat
  • loop
    有一种goto形式区块跳转也可以进行循环,不过不推荐

while

  WHILE (条件) DO
     ...
  END WHILE;

repeat

  REPEAT
    ...
  UNTIL 条件
  END REPEAT;

loop

  循环名: LOOP
    IF 条件 THEN
      LEAVE 循环名;
    END IF;
    ...
  END LOOP;

重点

  1. 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循环时,需要在这之前进行循环条件判断。

你可能感兴趣的:(MySql存储过程循环注意事项)