[begin_label
:] BEGIN [statement_list
] END [end_label
]
Die BEGIN ... END
-Syntax wird für
zusammengesetzte Anweisungen verwendet, die in gespeicherten
Routinen und Triggern auftreten können. Eine zusammengesetzte
Anweisung enthält mehrere Anweisungen, die zwischen den
Schlüsselwörtern BEGIN
und
END
stehen. Die
statement_list
ist eine Liste mit
einer oder mehreren Anweisungen. Jede Anweisung der
statement_list
muss durch ein
Semikolon (;
) abgegrenzt werden. Beachten
Sie, dass eine statement_list
optional ist, sodass auch eine leere zusammengesetzte Anweisung
(BEGIN END
) zulässig wäre.
Um überhaupt mehrere Anweisungen verbinden zu können, muss ein
Client in der Lage sein, Strings von Anweisungen zu senden, die
durch das Trennzeichen ;
abgegrenzt sind.
Dafür sorgt der Kommandozeilen-Client mysql
mit dem Befehl delimiter
. Wenn Sie das
Begrenzungszeichen für Anweisungen von ;
auf
etwas anderes umstellen (beispielsweise ein
//
), dann kann ;
auch im
Rumpf der Routine verwendet werden. Ein Beispiel finden Sie in
Abschnitt 19.2.1, „CREATE PROCEDURE
und CREATE
FUNCTION
“.
Eine zusammengesetzte Anweisung kann auch beschriftet sein. Ein
end_label
kann allerdings nur
verwendet werden, wo auch ein
begin_label
vorhanden ist. Wo beide
vorhanden sind, müssen sie identisch sein.
Die optionale Klausel [NOT] ATOMIC
wird noch
nicht unterstützt. Dies bedeutet, dass am Anfang eines
Anweisungsblocks kein Transaktions-Savepoint gesetzt wird und
dass eine BEGIN
-Klausel in diesem Kontext
keinen Einfluss auf die aktuelle Transaktion hat.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.