Mega Code Archive

 
Categories / MySQL Tutorial / Procedure Function
 

Loop with ITERATE Statement

ITERATE label ITERATE can appear only within LOOP, REPEAT, and WHILE statements. ITERATE means "do the loop again." CREATE PROCEDURE doiterate(p1 INT) BEGIN   label1: LOOP     SET p1 = p1 + 1;     IF p1 < 10 THEN ITERATE label1; END IF;     LEAVE label1;   END LOOP label1;   SET @x = p1; END You can use ITERATE in a LOOP, WHILE, or REPEAT control to indicate that the control should iterate through the statements in the loop again. mysql> mysql> DELIMITER // mysql> CREATE PROCEDURE myProc (IN in_count INT)     -> BEGIN     ->     DECLARE count INT default 0;     ->     ->     increment: LOOP     ->     SET count = count + 1;     ->     IF count < 20 THEN ITERATE increment; END IF;     ->     IF count > in_count THEN LEAVE increment;     ->     END IF;     ->     END LOOP increment;     ->     ->     SELECT count;     -> END     -> // Query OK, 0 rows affected (0.00 sec) mysql> DELIMITER ; mysql> mysql> call myProc(5); +-------+ | count | +-------+ |    20 | +-------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.00 sec) mysql> mysql> drop procedure myProc; Query OK, 0 rows affected (0.00 sec) mysql>