Wie unter Defining Stored Programs dokumentiert :
Wenn Sie den mysql verwenden Clientprogramm ein gespeichertes Programm mit Semikolon zu definieren, tritt ein Problem auf. Standardmäßig mysql selbst erkennt das Semikolon als Anweisungstrennzeichen, also müssen Sie das Trennzeichen vorübergehend neu definieren, damit mysql um die gesamte gespeicherte Programmdefinition an den Server zu übergeben.
Dasselbe gilt für phpMyAdmin.
Zur Neudefinition von mysql Trennzeichen, verwenden Sie das
delimiterBefehl.Nicht alle Versionen von phpMyAdmin erkennen das
delimiterBefehl; stattdessen kann man dasDelimiterverwenden Eingabefeld unter dem SQL-Eingabefeld:siehe Wie schreibe ich einen SP in phpMyAdmin (MySQL)?Das Folgende ist ein Beispiel für eine Funktion, die einen Parameter akzeptiert, eine Operation unter Verwendung einer SQL-Funktion ausführt und das Ergebnis zurückgibt. In diesem Fall ist die Verwendung von
delimiternicht erforderlich weil die Funktionsdefinition keinen internen;enthält Anweisungstrennzeichen:mysql>
CREATE FUNCTION hello (s CHAR(20))mysql>RETURNS CHAR(50) DETERMINISTIC->RETURN CONCAT('Hello, ',s,'!');Query OK, 0 rows affected (0.00 sec)In Ihrem Fall können Sie den
BEGIN ... ENDBlockieren Sie zusammengesetzte Anweisungen und vermeiden Sie die Notwendigkeit, das Trennzeichen zu ändern.