Página 1 de 1

Dica do dia: MySQL DELIMITER

Enviado: 15 Abr 2021 11:22
por JoséQuintas
Supondo que o conteúdo da função fosse

Código: Selecionar todos

;
;
;
;
Nos editores SQL, o ponto e vírgula costuma indicar a finalização do comando, e podemos digitar vários comandos pra executar depois todos em sequência.
Então seria impossível digitar um comando pra criar a função acima.
o "console" do MySQL é um deles, e o HeidiSQL é outro.
Foi pra isso que inventaram o DELIMITER.

Código: Selecionar todos

DELIMITER $$
;
;
;
;
;
$$
Na documentação do MySQL apenas mostra o DELIMITER, porque usa no console dele, mas não diz que isso NÃO faz parte do comando.
Acabei pensando que fazia parte do comando, ou que era obrigatório, e por isso não funcionava de jeito nenhum.

Vai executar pelo aplicativo: DELIMITER não existe
Vai digitar no HeidiSQL ou no console do MySQL? precisa o DELIMITER, pra avisar ao HeidiSQL ou ao console MySQL que tudo é um único comando.

Façam pra curiosidade: procurem no google sobre o uso/erros de DELIMITER.
Não vão encontrar nenhum post explicando o que estou colocando aqui.
Pelo contrário, eles vão dar a impressão de que sempre faz parte do comando.


Acho até que muita gente desistiu de criar STORED PROCEDURES/FUNCTIONS por causa disso.

Dica do dia: MySQL DELIMITER

Enviado: 15 Abr 2021 11:34
por JoséQuintas
mysql.png
https://www.mysqltutorial.org/mysql-sto ... delimiter/

Olhando esse manual, por exemplo, se não ler atentamente as entrelinhas, parece até fazer parte normal dos comandos.
mysql2.png
Acima, as entrelinhas, dizendo que é pra CLIENTE MYSQL, pra interpretadores de comandos, assim como o workbench e o console MySQL.

Dica do dia: MySQL DELIMITER

Enviado: 15 Abr 2021 11:37
por JoséQuintas
Convém destacar mais uma coisa aí:

Se SQLMIX precisa ou não disso.... não sei dizer.
No ADO sei que não precisa, mas se depende do "cliente", depende de como foi implementado o SQLMIX.