Procédure stockée – MySQL
Une procédure stockée est un code SQL que vous pouvez enregistrer afin de pouvoir le réutiliser encore une fois.
Les procédures stockées sont rapides. Le serveur MySQL tire parti de la mise en cache, tout comme les instructions préparées. La vitesse provient de la réduction du trafic sur le réseau. Si vous avez une tâche répétitive qui nécessite une vérification, une mise en boucle, plusieurs instructions et aucune interaction de l’utilisateur, faites-le avec un seul appel à une procédure stockée sur le serveur.
Donc, si vous avez une requête SQL que vous écrivez plusieurs fois, enregistrez-la en tant que procédure stockée, puis appelez-la pour l’exécuter.
Vous pouvez également transmettre des paramètres à une procédure stockée afin que celle-ci puisse agir en fonction des valeurs de paramètre transmises.
Exemple:
La requête suivante renvoie toutes les lignes de la table clients:
SELECT ClientID, nom, age, adresse FROM Clients ORDER BY nom;
Si vous souhaitez enregistrer cette requête sur le serveur MySQL pour une exécution ultérieure, vous pouvez utiliser une procédure stockée.
L’instruction CREATE PROCEDURE crée une nouvelle procédure stockée qui encapsule la requête ci-dessus:
DELIMITER $ CREATE PROCEDURE GetClients() BEGIN SELECT ClientID, nom, age, adresse FROM Clients ORDER BY nom; END$ DELIMITER ;
Par définition, une procédure stockée est un bloc de code stockées dans le serveur MySQL. Dans cet exemple, nous venons de créer une procédure stockée appelée GetClients().
Une fois que vous avez enregistré la procédure stockée, vous pouvez l’invoquer à l’aide de l’instruction CALL:
CALL GetClients();
La procédure stockée renvoie le même résultat que la requête.
La première fois que vous appelez une procédure stockée, MySQL recherche le nom dans la base de données, compile le code de la procédure stockée, le place dans une zone mémoire appelée cache et exécute la procédure stockée.
Si vous appelez à nouveau la même procédure stockée dans la même session, MySQL exécute simplement la procédure stockée à partir du cache sans avoir à la recompiler.
Une procédure stockée peut avoir des instructions de flux de contrôle telles que IF, CASE et LOOP qui vous permettent d’implémenter le code de manière procédurale.