Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi utiliser un délimiteur avec une procédure stockée dans mysql ?

Le délimiteur par défaut de MySQL est ; qui est utilisé pour une instruction dans la ligne de commande, quelque chose comme

select * from users ;

Lorsque vous écrivez un déclencheur ou une procédure stockée pour exécuter l'intégralité du code, mysql doit comprendre qu'il s'agit d'un bloc de code/requête.

Si aucun délimiteur n'est fourni, lorsque mysql rencontre un ; à l'intérieur de la procédure de magasin ou du déclencheur, il pensera cela comme une seule instruction et essaiera de l'exécuter. Nous devons donc fournir un délimiteur pour la procédure de magasin ou le déclencheur et faire comprendre à mysql que tout ce qui se trouve à l'intérieur de ce délimiteur est un ensemble complet de code.

Donc dans votre exemple

SELECT * FROM products; 

il fera partie de l'instruction complète lorsqu'il y a un délimiteur autre que ; est fourni au début.