Olá.
Gostaria de saber porque o DELIMITER que fecha a SP precisa de um espaço em branco para o ponto e vírgula(;) que fecha a expressão. Desde já agradeço.
Olá.
Gostaria de saber porque o DELIMITER que fecha a SP precisa de um espaço em branco para o ponto e vírgula(;) que fecha a expressão. Desde já agradeço.
Olá Bruno, tudo bem?
Tanto o comando Delimiter que informamos antes do procedimento como o comando Delimiter informado após o procedimento, devemos informar um espaço entre o nome e o delimitador que definimos. Este espaço faz parte da sintaxe do comando, que foi definida pelo próprio MySQL. Por este motivo, quando não informamos o espaço, um erro de sintaxe pode ser retornado e o comando não é executado.
Essa sintaxe também pode mudar de acordo com a versão utilizada Bruno, por isso, sempre é indicado pelo MySQL, para verificarmos o manual que corresponde à versão que estamos utilizando.
Espero ter ajudado, qualquer nova dúvida é só falar e bons estudos!
Fala, Bruno! Beleza? A sua dúvida é sobre esse último DELIMITER, certo?
Se for isso, na verdade esse ponto e vírgula (;) não fecha a SP. A SP é fechada em "END$$".
O que esse comando "DELIMITER ;" faz ao final é apenas redefinir o delimitador como o ponto e vírgula, voltando ao normal. Aí o espaço é por causa da sintaxe definida pelo MySQL, como a Danielle comentou acima.
Espero ter ajudado. Abraço!
Boa tarde Lenadro. Na verdade, minha dúvida era em relação a essa necessidade de espaço entre o DELIMITER e o ponto e vírgula (;). Se juntar o DELIMITER ao ponto e vírgula dará um erro.
Saquei, Bruno. Então é o que a Danielle disse mesmo: questão de sintaxe. O comando DELIMITER precisa de um espaço para o caractere que você vai inserir como novo delimitador.
E faz sentido, visto que se você escrever tudo junto, é como se o comando estivesse escrito errado: "DELIMITER$$" OU "DELIMITER;" ao invés de somente DELIMITER.
Abraço!