Como se documenta en Definición de programas almacenados :
Si usa mysql programa cliente para definir un programa almacenado que contiene caracteres de punto y coma, surge un problema. Por defecto, mysql reconoce el punto y coma como un delimitador de declaración, por lo que debe redefinir el delimitador temporalmente para causar mysql para pasar toda la definición del programa almacenado al servidor.
Lo mismo ocurre con phpMyAdmin.
Para redefinir el mysql delimitador, use el
delimiter
comando.No todas las versiones de phpMyAdmin reconocen el
delimiter
dominio; en su lugar, se puede usar elDelimiter
cuadro de entrada debajo del cuadro de entrada SQL:consulte ¿Cómo escribo un SP en phpMyAdmin (MySQL)?El siguiente es un ejemplo de una función que toma un parámetro, realiza una operación utilizando una función SQL y devuelve el resultado. En este caso, no es necesario utilizar
delimiter
porque la definición de la función no contiene ningún;
interno delimitadores de declaraciones:mysql>
CREATE FUNCTION hello (s CHAR(20))
mysql>RETURNS CHAR(50) DETERMINISTIC
->RETURN CONCAT('Hello, ',s,'!');
Query OK, 0 rows affected (0.00 sec)En su caso, puede eliminar el
BEGIN ... END
bloque de declaraciones compuestas y evite la necesidad de cambiar el delimitador.