4
respostas

[Dúvida] [DELIMITER]

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.

4 respostas

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?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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!