sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

Dificultad para escribir procedimientos almacenados en MYSQL

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 el Delimiter 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.