Maison > Article > base de données > Quand l’erreur de délimiteur MySQL se produit-elle ?
Le délimiteur MySQL se produit lorsque vous utilisez le délimiteur de canal (|) avec un point-virgule (;) et que vous utilisez une version MySQL antérieure à 8.0.12.
MySQL traite le tube (|) comme un délimiteur et le point-virgule (;) comme un autre délimiteur. Par conséquent, ne confondez pas les délimiteurs MySQL avec les barres verticales et les points-virgules.
Remarque : Ici, nous utilisons MySQL version 8.0.12. Les délimiteurs de barres fonctionnent bien avec les points-virgules. Si vous utilisez une version antérieure à 8.0.12, cela provoquera des erreurs de délimiteur.
Voici comment fonctionnent les délimiteurs MySQL :
mysql> delimiter |; mysql> create procedure getSumOfTwoNumbers() -> begin -> select 2+3 as TotalValue; -> end ; -> |; Query OK, 0 rows affected (0.17 sec) mysql> delimiter ;
Appelez maintenant la procédure stockée à l'aide de la commande call. La requête est la suivante :
mysql> call getSumOfTwoNumbers();
Voici le résultat :
+------------+ | TotalValue | +------------+ | 5 | +------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
N'utilisez pas de point-virgule pour implémenter le délimiteur de tube ci-dessus car dans MySQL, le point-virgule est le délimiteur par défaut et il indique la fin de l'instruction dans MySQL. Ainsi, lorsque vous écrivez plusieurs instructions, vous pouvez utiliser des points-virgules pour revenir des procédures stockées MySQL.
Voici un exemple de changement de délimiteur.
Tout d’abord, utilisez le délimiteur de canal (|). Si vous souhaitez définir le séparateur sur un tube, utilisez la requête suivante.
mysql> DELIMITER |
La requête pour créer la procédure stockée est la suivante :
mysql> DELIMITER | mysql> create procedure Demo() -> begin -> select 2*3 as TotalMultiplication; -> end ; -> | Query OK, 0 rows affected (0.12 sec)
Changez maintenant le délimiteur par un point-virgule. Si vous souhaitez définir le délimiteur sur un point-virgule, utilisez la requête suivante.
La requête est la suivante :
mysql> delimiter ;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!