MySQL儲存過程中LOOP,REPEAT,WHILE.三種迴圈跳出和繼續操作示例
阿新 • • 發佈:2021-01-13
技術標籤:mysql
MySQL儲存過程中游標迴圈的跳出和繼續操作示例
MySQL中的遊標迴圈操作常用的有三種,LOOP,REPEAT,WHILE.三種迴圈
1.REPEAT
DELIMITER $$
CREATE PROCEDURE `procedure_date_time_time360`()
BEGIN
-- 自定義變數
DECLARE i_int INT DEFAULT(1);
-- 設定批量提交
SET autocommit = 0;
REPEAT
insert into `date_time` (`date_time`) values (DATE_SUB(CURDATE( ),INTERVAL i_int day));
SET i_int = i_int +1;
UNTIL i_int >360
END REPEAT;
COMMIT;
-- 設定提交
SET autocommit = 1;
END $$
DELIMITER;
2.WHILE
DECLARE num INT;
DECLARE my_string VARCHAR(255);
SET num =1;
SET str ='';
WHILE num < span>10DO
SET my_string =CONCAT(my_string,num, ',');
SET num = num +1;
END WHILE;
3.LOOP(這裡面有非常重要的ITERATE,LEAVE)
DECLARE num INT;
DECLARE str VARCHAR(255);
SET num =1;
SET my_string ='';
loop_label: LOOP
IF num <10THEN
LEAVE loop_label;
ENDIF;
SET num = num +1;
IF(num mod3)THEN
ITERATE loop_label;
ELSE
SET my_string =CONCAT( my_string,num,',');
ENDIF;
END LOOP;
可以這樣理解ITERATE就是我們程式中常用的contiune,而ITERATE就是break.當然在MySQL儲存過程,需要迴圈結構有個名稱,其他都是一樣的.
官方文件http://dev.mysql.com/doc/refman/5.0/en/loop.html