Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Statement Labels

15.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]

标签允许在BEGIN ... END块和LOOPREPEATWHILE语句中使用。对于这些语句,标签使用遵循以下规则:

  • begin_label必须以冒号结尾。

  • begin_label可以不带end_label。如果end_label存在,它必须与begin_label相同。

  • end_label不能不带begin_label

  • 同一层次的标签必须不同。

  • 标签的长度不能超过16个字符。

要在标签构造中引用标签,可以使用ITERATELEAVE语句。以下示例使用这些语句来继续迭代或终止循环:

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;

块标签的作用域不包括在块中声明的处理程序代码。详见第15.6.7.2节,“DECLARE ... HANDLER语句”