Spec-Zone .ru
спецификации, руководства, описания, API
|
[begin_label
:] BEGIN [statement_list
]END [end_label
]
BEGIN ... END
syntax is used for writing compound statements, which can appear
within stored programs (stored procedures and functions, triggers, and events). 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 terminated by a semicolon (;
) statement delimiter. The statement_list
itself is optional, so the empty compound statement
(BEGIN END
) is legal.
BEGIN ... END
blocks can be nested.
Use of multiple statements requires that a client is able to send statement strings containing the ;
statement delimiter. In the mysql command-line client, this is handled with the delimiter
command. Changing the ;
end-of-statement
delimiter (for example, to //
) permit ;
to be used in
a program body. For an example, see Section 19.1, "Defining Stored
Programs".
A BEGIN ... END
block can be labeled. See Section
13.6.2, "Statement Label Syntax".
The optional [NOT] ATOMIC
clause is not 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.
Within all stored programs, the parser treats BEGIN [WORK]
as the beginning of a BEGIN ... END
block. To begin a transaction in this context, use START
TRANSACTION
instead.