Dans MySQL, il n'est pas possible de déclarer des variables et d'utiliser une boucle while en dehors d'une procédure stockée. En effet, ces constructions doivent être déclarées dans la clause BEGIN...END, qui n'est disponible que dans les procédures stockées, les fonctions, les déclencheurs et les événements.
Surmonter les limitations
Si vous devez déclarer des variables et utiliser une boucle while en dehors d'une procédure stockée, vous pouvez créer une procédure stockée temporaire qui encapsule cette fonctionnalité. Voici un modèle que vous pouvez suivre :
<code class="sql">CREATE TEMPORARY PROCEDURE my_temp_proc() BEGIN DECLARE var1 INT; DECLARE var2 VARCHAR(255); WHILE var1 < 10 DO SET var2 = CONCAT(var2, 'Iteration ', var1, '\n'); SET var1 = var1 + 1; END WHILE; END</code>
Utilisation
Pour exécuter la procédure stockée temporaire et accéder aux variables déclarées, vous pouvez utiliser les étapes suivantes :
Exécuter la procédure stockée :
<code class="sql">CALL my_temp_proc();</code>
Interroger les variables déclarées à l'aide de la table INFORMATION_SCHEMA.ROUTINE_VARIABLES :
<code class="sql">SELECT ROUTINE_NAME, VARIABLE_NAME, VARIABLE_TYPE, VARIABLE_VALUE FROM INFORMATION_SCHEMA.ROUTINE_VARIABLES WHERE ROUTINE_NAME = 'my_temp_proc';</code>
Cela affichera les valeurs des variables déclarées.
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!