mysql遊標循環的使用

-- 創建存儲過程
CREATE PROCEDURE test()
BEGIN
-- 定義接收遊標數據的變量
DECLARE id INT DEFAULT 1;
-- 定義遍歷數據的結束標誌
DECLARE done INT DEFAULT FALSE;
-- 定義遊標及其數據源
DECLARE cur CURSOR FOR SELECT i FROM table1;
-- 將結束標誌綁定到遊標
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

-- 打開遊標
OPEN cur;
-- 開始循環
read_loop: LOOP
-- 提取遊標裏的數據
FETCH cur INTO id;
-- 聲明結束的時候
IF done THEN
      LEAVE read_loop;
END IF;
-- 循環內想做的事件,如循環插入
INSERT INTO table2 VALUES (id);
-- 結束循環
END LOOP;
-- 關閉遊標
CLOSE cur;
--結束存儲過程
END

--調用後刪除
CALL test();
DROP PROCEDURE IF EXISTS test;

注意:
1、接收遊標數據的變量不要定義爲與遊標數據源的select字段同名
2、變量、遊標等注意定義順序

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章