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.