phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

Dificuldade em escrever o procedimento armazenado em MYSQL


Conforme documentado em Definindo programas armazenados :

  • Se você usa o mysql programa cliente para definir um programa armazenado contendo caracteres de ponto e vírgula, surge um problema. Por padrão, mysql ele mesmo reconhece o ponto e vírgula como um delimitador de instrução, então você deve redefinir o delimitador temporariamente para fazer com que mysql para passar toda a definição do programa armazenado para o servidor.

    O mesmo vale para o phpMyAdmin.

  • Para redefinir o mysql delimitador, use o delimitador comando.

    Nem todas as versões do phpMyAdmin reconhecem o delimiter comando; em vez disso, pode-se usar o Delimiter caixa de entrada abaixo da caixa de entrada SQL:veja Como escrevo um SP no phpMyAdmin (MySQL)?

  • Veja a seguir um exemplo de uma função que recebe um parâmetro, executa uma operação usando uma função SQL e retorna o resultado. Neste caso, não é necessário usar delimiter porque a definição da função não contém ; interno delimitadores de instruções:
    mysql> CREATE FUNCTION hello (s CHAR(20))
    mysql> RETURNS CHAR(50) DETERMINISTIC
        -> RETURN CONCAT('Hello, ',s,'!');
    Query OK, 0 rows affected (0.00 sec)
    

    No seu caso, você pode remover o BEGIN ... END bloco de instruções compostas e evite a necessidade de alterar o delimitador.