13.6.5.5 LOOP 声明

[begin_label:] LOOP
    statement_list
END LOOP [end_label]

LOOP实现了一个简单的循环构造,使语句列 table 的重复执行成为可能,该语句列 table 由一个或多个语句组成,每个语句均以分号(;)语句定界符终止。重复循环中的语句,直到循环终止。通常,这是通过LEAVE语句完成的。在存储的函数中,也可以使用RETURN,它会完全退出该函数。

忽略包含循环终止语句会导致无限循环。

可以标记LOOP语句。有关标签使用的规则,请参见第 13.6.2 节“声明标签”

Example:

CREATE PROCEDURE doiterate(p1 INT)
BEGIN
  label1: LOOP
    SET p1 = p1 + 1;
    IF p1 < 10 THEN
      ITERATE label1;
    END IF;
    LEAVE label1;
  END LOOP label1;
  SET @x = p1;
END;