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

Por delimitador usado com procedimento armazenado no mysql?


O delimitador padrão do MySQL é ; que é usado para uma instrução na linha de comando, algo como
select * from users ;

Quando você escreve um gatilho ou procedimento armazenado para executar todo o código, o mysql precisa entender que é um bloco de código/consulta.

Se nenhum delimitador for fornecido, quando o mysql encontrar qualquer ; dentro do procedimento de armazenamento ou gatilho, ele pensará que é uma instrução e tentará executá-lo. Portanto, precisamos fornecer um delimitador para o procedimento de armazenamento ou gatilho e fazer o mysql entender que qualquer coisa dentro desse delimitador é um conjunto completo de código.

Então no seu exemplo
SELECT * FROM products; 

ele fará parte da instrução completa quando houver um delimitador diferente de ; é fornecido no início.