13.6.2 语句标签

[begin_label:] BEGIN
    [statement_list]
END [end_label]

[begin_label:] LOOP
    statement_list
END LOOP [end_label]

[begin_label:] REPEAT
    statement_list
UNTIL search_condition
END REPEAT [end_label]

[begin_label:] WHILE search_condition DO
    statement_list
END WHILE [end_label]

开始...结束块以及LOOPREPEATWHILE语句允许使用标签。这些语句的标签使用遵循以下规则:

    • begin_label *后必须加冒号。
    • begin_label 可以不带 end_label 给出。如果存在 end_label ,则必须与 begin_label *相同。
    • end_label 没有 begin_label *时不能给出。
  • 同一嵌套级别的标签必须是不同的。

  • 标签最多可包含 16 个字符。

要在带标签的构造中引用标签,请使用ITERATELEAVE语句。下面的示例使用这些语句 continue 迭代或终止循环:

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;
END;

块标签的范围不包括在块内声明的处理程序的代码。有关详细信息,请参见第 13.6.7.2 节“ DECLARE ... HANDLER 语句”