test
test
DELIMITER n'agit que pour la session courante.
Vous pouvez utiliser le (ou les) caractère(s) de votre choix comme délimiteur. Bien entendu, il vaut mieux choisir quelque chose
qui ne risque pas d'être utilisé dans une instruction. Bannissez donc les lettres, chiffres, @ (qui servent pour les variables
utilisateurs) et les \ (qui servent à échapper les caractères spéciaux).
Les deux délimiteurs suivants sont les plus couramment utilisés :
Code : SQL
DELIMITER //
DELIMITER |
Bien ! Ceci étant réglé, reprenons !
Création d'une procédure stockée
Code : SQL
DELIMITER |
-- On change le délimiteur
CREATE PROCEDURE afficher_races()
-- toujours pas de
paramètres, toujours des parenthèses
BEGIN
SELECT id, nom, espece_id, prix
FROM Race;
-- Cette fois, le ; ne nous
embêtera pas
END|
-- Et on termine bien sûr la
commande CREATE PROCEDURE par notre nouveau délimiteur
Cette fois-ci, tout se passe bien. La procédure a été créée.
Lorsqu'on utilisera la procédure, quel que soit le délimiteur défini par DELIMITER, les instructions à l'intérieur du
corps de la procédure seront bien délimitées par ;. En effet, lors de la création d'une procédure, celle-ci est interprétée –
on dit aussi "parsée" – par le serveur MySQL et le parseur des procédures stockées interprétera toujours ; comme
délimiteur. Il n'est pas influencé par la commande DELIMITER.
Les procédures stockées n'étant que très rarement composées d'une seule instruction, on utilise presque toujours un bloc
d'instructions pour le corps de la procédure.
Utilisation d'une procédure stockée
Pour appeler une procédure stockée, c'est-à-dire déclencher l'exécution du bloc d'instructions constituant le corps de la
procédure, il faut utiliser le mot-clé CALL, suivi du nom de la procédure appelée, puis de parenthèses (avec éventuellement des
paramètres).
Code : SQL
CALL afficher_races()|
-- le délimiteur est toujours | !!!
Partie 5 : Sécuriser et automatiser ses actions
267/414
www.openclassrooms.com
test
DELIMITER n'agit que pour la session courante.
Vous pouvez utiliser le (ou les) caractère(s) de votre choix comme délimiteur. Bien entendu, il vaut mieux choisir quelque chose
qui ne risque pas d'être utilisé dans une instruction. Bannissez donc les lettres, chiffres, @ (qui servent pour les variables
utilisateurs) et les \ (qui servent à échapper les caractères spéciaux).
Les deux délimiteurs suivants sont les plus couramment utilisés :
Code : SQL
DELIMITER //
DELIMITER |
Bien ! Ceci étant réglé, reprenons !
Création d'une procédure stockée
Code : SQL
DELIMITER |
-- On change le délimiteur
CREATE PROCEDURE afficher_races()
-- toujours pas de
paramètres, toujours des parenthèses
BEGIN
SELECT id, nom, espece_id, prix
FROM Race;
-- Cette fois, le ; ne nous
embêtera pas
END|
-- Et on termine bien sûr la
commande CREATE PROCEDURE par notre nouveau délimiteur
Cette fois-ci, tout se passe bien. La procédure a été créée.
Lorsqu'on utilisera la procédure, quel que soit le délimiteur défini par DELIMITER, les instructions à l'intérieur du
corps de la procédure seront bien délimitées par ;. En effet, lors de la création d'une procédure, celle-ci est interprétée –
on dit aussi "parsée" – par le serveur MySQL et le parseur des procédures stockées interprétera toujours ; comme
délimiteur. Il n'est pas influencé par la commande DELIMITER.
Les procédures stockées n'étant que très rarement composées d'une seule instruction, on utilise presque toujours un bloc
d'instructions pour le corps de la procédure.
Utilisation d'une procédure stockée
Pour appeler une procédure stockée, c'est-à-dire déclencher l'exécution du bloc d'instructions constituant le corps de la
procédure, il faut utiliser le mot-clé CALL, suivi du nom de la procédure appelée, puis de parenthèses (avec éventuellement des
paramètres).
Code : SQL
CALL afficher_races()|
-- le délimiteur est toujours | !!!
Partie 5 : Sécuriser et automatiser ses actions
267/414
www.openclassrooms.com
