Procédures stockées
Les procédures stockées sont disponibles depuis la version 5 de MySQL, et permettent d'automatiser des actions, qui peuvent
être très complexes.
Une procédure stockée est en fait une série d'instructions SQL désignée par un nom. Lorsque l'on crée une procédure stockée,
on l'enregistre dans la base de données que l'on utilise, au même titre qu'une table par exemple. Une fois la procédure créée, il est
possible d'appeler celle-ci, par son nom. Les instructions de la procédure sont alors exécutées.
Contrairement aux requêtes préparées, qui ne sont gardées en mémoire que pour la session courante, les procédures stockées
sont, comme leur nom l'indique, stockées de manière durable, et font bien partie intégrante de la base de données dans laquelle
elles sont enregistrées.
Création et utilisation d'une procédure
Voyons tout de suite la syntaxe à utiliser pour créer une procédure :
Code : SQL
CREATE PROCEDURE nom_procedure ([parametre1 [, parametre2, ...]])
corps de la procédure;
Décodons tout ceci.
CREATE PROCEDURE : sans surprise, il s'agit de la commande à exécuter pour créer une procédure. On fait suivre cette
commande du nom que l'on veut donner à la nouvelle procédure.
([parametre1 [, parametre2, ...]]) : après le nom de la procédure viennent des parenthèses. Celles-ci
sont obligatoires ! À l'intérieur de ces parenthèses, on définit les éventuels paramètres de la procédure. Ces paramètres
sont des variables qui pourront être utilisées par la procédure.
corps de la procédure : c'est là que l'on met le contenu de la procédure, ce qui va être exécuté lorsqu'on lance la
procédure. Cela peut être soit une seule requête, soit un bloc d'instructions.
Les noms des procédures stockées ne sont pas sensibles à la casse.
Procédure avec une seule requête
Voici une procédure toute simple, sans paramètres, qui va juste afficher toutes les races d'animaux.
Code : SQL
CREATE PROCEDURE afficher_races_requete() -- pas de paramètres dans
les parenthèses
SELECT id, nom, espece_id, prix FROM Race;
Procédure avec un bloc d'instructions
Pour délimiter un bloc d'instructions (qui peut donc contenir plus d'une instruction), on utilise les mots BEGIN et END.
Code : SQL
BEGIN
-- Série d'instructions
END;
Partie 5 : Sécuriser et automatiser ses actions
265/414
www.openclassrooms.com
Les procédures stockées sont disponibles depuis la version 5 de MySQL, et permettent d'automatiser des actions, qui peuvent
être très complexes.
Une procédure stockée est en fait une série d'instructions SQL désignée par un nom. Lorsque l'on crée une procédure stockée,
on l'enregistre dans la base de données que l'on utilise, au même titre qu'une table par exemple. Une fois la procédure créée, il est
possible d'appeler celle-ci, par son nom. Les instructions de la procédure sont alors exécutées.
Contrairement aux requêtes préparées, qui ne sont gardées en mémoire que pour la session courante, les procédures stockées
sont, comme leur nom l'indique, stockées de manière durable, et font bien partie intégrante de la base de données dans laquelle
elles sont enregistrées.
Création et utilisation d'une procédure
Voyons tout de suite la syntaxe à utiliser pour créer une procédure :
Code : SQL
CREATE PROCEDURE nom_procedure ([parametre1 [, parametre2, ...]])
corps de la procédure;
Décodons tout ceci.
CREATE PROCEDURE : sans surprise, il s'agit de la commande à exécuter pour créer une procédure. On fait suivre cette
commande du nom que l'on veut donner à la nouvelle procédure.
([parametre1 [, parametre2, ...]]) : après le nom de la procédure viennent des parenthèses. Celles-ci
sont obligatoires ! À l'intérieur de ces parenthèses, on définit les éventuels paramètres de la procédure. Ces paramètres
sont des variables qui pourront être utilisées par la procédure.
corps de la procédure : c'est là que l'on met le contenu de la procédure, ce qui va être exécuté lorsqu'on lance la
procédure. Cela peut être soit une seule requête, soit un bloc d'instructions.
Les noms des procédures stockées ne sont pas sensibles à la casse.
Procédure avec une seule requête
Voici une procédure toute simple, sans paramètres, qui va juste afficher toutes les races d'animaux.
Code : SQL
CREATE PROCEDURE afficher_races_requete() -- pas de paramètres dans
les parenthèses
SELECT id, nom, espece_id, prix FROM Race;
Procédure avec un bloc d'instructions
Pour délimiter un bloc d'instructions (qui peut donc contenir plus d'une instruction), on utilise les mots BEGIN et END.
Code : SQL
BEGIN
-- Série d'instructions
END;
Partie 5 : Sécuriser et automatiser ses actions
265/414
www.openclassrooms.com
