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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!