Mysql
 sql >> Database >  >> RDS >> Mysql

Perché delimitatore utilizzato con la procedura memorizzata in mysql?

Il delimitatore predefinito di MySQL è ; che viene utilizzato per un'istruzione nella riga di comando, qualcosa come

select * from users ;

Quando scrivi un trigger o una stored procedure per eseguire l'intero codice, mysql deve capire che è un blocco di codice/query.

Se non viene fornito alcun delimitatore, quando mysql incontra qualsiasi ; all'interno della procedura del negozio o del trigger lo penserà come un'unica istruzione e proverà ad eseguirlo. Quindi dobbiamo fornire un delimitatore per la procedura di archiviazione o il trigger e fare in modo che mysql capisca che qualsiasi cosa all'interno di quel delimitatore è un insieme completo di codice.

Quindi nel tuo esempio

SELECT * FROM products; 

farà parte dell'istruzione completa quando è presente un delimitatore diverso da ; è fornito all'inizio.