MySQL存儲過程是一種在數據庫中編寫的程序,在執行時可以實現一些特定的任務。在MySQL存儲過程中可以使用循環結構,以便在程序執行過程中重復執行某些任務。
MySQL存儲過程中的循環結構主要有兩種:循環控制語句和游標。
循環控制語句
DELIMITER $$ CREATE PROCEDURE proc_loop() BEGIN DECLARE i INT DEFAULT 1; WHILE i<= 10 DO SELECT i; SET i = i + 1; END WHILE; END $$ DELIMITER ; CALL proc_loop();
循環控制語句中使用的是while語句,它需要一個循環條件,只要這個條件為true,就會一直執行循環體。在循環體中使用SET語句來更新循環條件i,使得其每次加1,從而實現對循環次數的控制。
游標循環
DELIMITER $$ CREATE PROCEDURE cursor_loop() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE name CHAR(20); DECLARE name_cursor CURSOR FOR SELECT name FROM test; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN name_cursor; read_loop: LOOP FETCH name_cursor INTO name; IF done THEN LEAVE read_loop; END IF; SELECT name; END LOOP; CLOSE name_cursor; END $$ DELIMITER ; CALL cursor_loop();
游標循環使用的是一個游標,在循環體中FETCH語句可以獲取游標從表test中選出的數據記錄。當done變量為true時,循環退出,close語句關閉游標。
總之,MySQL存儲過程中的循環結構提供了一種在程序執行過程中重復執行指定操作的控制結構,可以實現將相同的代碼塊執行多次的功能。