mysql遊標使用-遍歷結果集

USE milkstore;

DELIMITER $$

DROP PROCEDURE IF EXISTS `p1`$$

CREATE PROCEDURE p1()
BEGIN 
 DECLARE flag INT DEFAULT 0;
 DECLARE courseId INT;
 DECLARE userId INT;
 DECLARE createdTime DATETIME;
 DECLARE _cur CURSOR FOR 
	SELECT  course_id,user_id,created_time FROM course_user GROUP BY  course_id,user_id,created_time HAVING COUNT(course_id) > 1;
 DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = 1;
 OPEN _cur;
	sign1:LOOP
		FETCH _cur INTO courseId,userId,createdTime;
		IF flag=1 THEN -- 當無法fetch會觸發handler continue,解決遍歷到結果集末尾報錯問題
			LEAVE sign1;
		END IF;
		DELETE FROM course_user WHERE course_id = courseId AND user_id = userId AND created_time = createdTime;
	END LOOP;
 CLOSE _cur;
END$$

DELIMITER ;

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