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.
Questions techniques sur MYSQLQuestions techniques sur MYSQL – Partie 1Nous avons divisé cette collection de questions techniques sur MYSQL sous sept chapitres là, c’est la premiere, puis vous trouverez la deuxième partie, la troisième…Lire plus

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *