[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
块以及LOOP
、
REPEAT
和
WHILE
语句
允许使用标签
。这些语句的标签使用遵循以下规则:
begin_label
必须跟一个冒号。begin_label
可以不给end_label
。如果end_label
存在,则它必须与 相同begin_label
。end_label
不能没有begin_label
。同一嵌套级别的标签必须不同。
标签最长可达 16 个字符。
要在带标签的构造中引用标签,请使用
ITERATE
or
LEAVE
语句。以下示例使用这些语句继续迭代或终止循环:
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 语句”。