19.2.5. BEGIN ... END Compound Statement Syntax
[begin_label:] BEGIN
[statement_list]
END [end_label]
BEGIN ... END syntax is used for writing
compound statements, which can appear within stored routines and
triggers. A compound statement can contain multiple statements,
enclosed by the BEGIN and
END keywords.
statement_list represents a list of
one or more statements. Each statement within
statement_list must be terminated by
a semicolon (;) statement delimiter. Note
that statement_list is optional,
which means that the empty compound statement (BEGIN
END) is legal.
Use of multiple statements requires that a client is able to
send statement strings containing the ;
statement delimiter. This is handled in the
mysql command-line client with the
delimiter command. Changing the
; end-of-statement delimiter (for example, to
//) allows ; to be used in
a routine body. For an example, see
Section 19.2.1, “CREATE PROCEDURE and CREATE FUNCTION Syntax”.
A compound statement can be labeled.
end_label cannot be given unless
begin_label also is present. If both
are present, they must be the same.
The optional [NOT] ATOMIC clause is not yet
supported. This means that no transactional savepoint is set at
the start of the instruction block and the
BEGIN clause used in this context has no
effect on the current transaction.