Maison  >  Article  >  base de données  >  MySQL peut-il déclarer des variables et utiliser des boucles While en dehors des procédures stockées ?

MySQL peut-il déclarer des variables et utiliser des boucles While en dehors des procédures stockées ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-24 10:52:29539parcourir

Can MySQL Declare Variables and Use While Loops Outside Stored Procedures?

Déclaration de variables et utilisation d'une boucle While en dehors d'une procédure stockée dans MySQL

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 :

  1. Exécuter la procédure stockée :

    <code class="sql">CALL my_temp_proc();</code>
  2. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn