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
delimiter
Befehl.Nicht alle Versionen von phpMyAdmin erkennen das
delimiter
Befehl; stattdessen kann man dasDelimiter
verwenden 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
delimiter
nicht 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 ... END
Blockieren Sie zusammengesetzte Anweisungen und vermeiden Sie die Notwendigkeit, das Trennzeichen zu ändern.