Maison  >  Article  >  base de données  >  Quand l’erreur de délimiteur MySQL se produit-elle ?

Quand l’erreur de délimiteur MySQL se produit-elle ?

WBOY
WBOYavant
2023-08-26 08:13:061501parcourir

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer