Spec-Zone .ru
спецификации, руководства, описания, API
|
[begin_label
:] BEGIN [statement_list
]END [end_label
][begin_label
:] LOOPstatement_list
END LOOP [end_label
][begin_label
:] REPEATstatement_list
UNTILsearch_condition
END REPEAT [end_label
][begin_label
:] WHILEsearch_condition
DOstatement_list
END WHILE [end_label
]
Labels are permitted for BEGIN
... END
blocks and for the LOOP
, REPEAT
,
and WHILE
statements. Label use for those statements follows these rules:
begin_label
must be followed by a colon.
begin_label
can be given without end_label
. If end_label
is present, it must be the same as begin_label
.
end_label
cannot be given without begin_label
.
Labels at the same nesting level must be distinct.
Labels can be up to 16 characters long.
To refer to a label within the labeled construct, use an ITERATE
or LEAVE
statement. The following example uses those statements to continue
iterating or terminate the loop:
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;
The scope of a block label does not include the code for handlers declared within the block. For details, see Section
13.6.7.2, "DECLARE ... HANDLER
Syntax".