"repeat_genial"
instructions
UNTIL condition END REPEAT;
-- Cette fois, on choisit de ne
pas faire référence au label lors de la fermeture
-- Bloc d'instructions
-- ------------------bloc_extra: BEGIN
-- Le bloc a pour label
"bloc_extra"
instructions
END bloc_extra;
Mais en quoi cela peut-il être utile ?
D'une part, cela peut permettre de clarifier le code lorsqu'il y a beaucoup de boucles et de blocs d'instructions imbriqués. D'autre
part, il est nécessaire de donner un label aux boucles et aux blocs d'instructions pour lesquels on veut pouvoir utiliser les
instructions ITERATE et LEAVE.
Les instructions LEAVE et ITERATE
LEAVE : quitter la boucle ou le bloc d'instructions
L'instruction LEAVE peut s'utiliser dans une boucle ou un bloc d'instructions et déclenche la sortie immédiate de la structure
dont le label est donné.
Code : SQL
LEAVE label_structure;
Exemple : cette procédure incrémente de 1, et affiche, un nombre entier passé en paramètre. Et cela, 4 fois maximum. Mais si l'on
trouve un multiple de 10, la boucle s'arrête.
Code : SQL
DELIMITER |
CREATE PROCEDURE test_leave1(IN p_nombre INT)
BEGIN
DECLARE v_i INT DEFAULT 4;
SELECT 'Avant la boucle WHILE';
while1: WHILE v_i > 0 DO
SET p_nombre = p_nombre + 1;
-- On incrémente le
nombre de 1
IF p_nombre%10 = 0 THEN
-- Si p_nombre est
divisible par 10,
SELECT 'Stop !' AS 'Multiple de 10';
LEAVE while1;
-- On quitte la boucle
WHILE.
END IF;
SELECT p_nombre;
-- On affiche p_nombre
SET v_i = v_i - 1;
-- Attention de ne pas
l'oublier
END WHILE while1;
SELECT 'Après la boucle WHILE';
Partie 5 : Sécuriser et automatiser ses actions
288/414
www.openclassrooms.com
Précédent

- 288/413

Suivant