Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

como executar o comando mysql DELIMITER


Você provavelmente não precisa alterar o delimitador.

O delimitador é necessário na CLI para dizer onde a instrução SQL termina, porque a CLI continuará lendo e executando mais instruções até que você diga para ela parar (por exemplo, com exit ou Controle-D). Mas o que ele realmente lê é apenas um fluxo de caracteres; de alguma forma, ele precisa descobrir onde uma instrução termina e a próxima começa. É isso que o delimitador faz.

No PHP, cada chamada de função executa uma instrução. Não pode haver várias instruções em uma chamada de função, portanto, não há necessidade de uma maneira de delimitá-las. A instrução é a string inteira. Isso vale para o antigo mysql_query bem como o mais novo mysqli_query e DOP. Claro, existe mysqli_multi_query se você realmente deseja passar várias consultas para uma função.

No caso de um procedimento armazenado/trigger/função/etc., pode haver várias instruções, mas isso é tratado pelo próprio MySQL (e é sempre ; , ATÉ ONDE SEI). Então, no que diz respeito ao PHP, isso ainda é uma declaração.

A configuração do delimitador que você está vendo no phpMyAdmin provavelmente está sendo usada para separar as instruções e provavelmente está sendo feita no código PHP. Ele precisa fazer isso porque está aceitando a entrada do usuário que consiste em várias instruções, mas deve passar apenas uma instrução por chamada de função. (Eu não verifiquei o código phpMyAdmin para ter certeza disso).