欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MYSQL存储过程游标错误:No data - zero rows fetched, selected, or processed 博客分类: DB-mysql mysqlproducurecursor 

程序员文章站 2024-02-12 08:35:34
...
游标FETCH获取为空时应该及时退出循环:
DROP PROCEDURE IF EXISTS delete_Menu;  
DELIMITER $$ 
CREATE PROCEDURE delete_Menu( IN menuCode VARCHAR(200))
BEGIN  
	DECLARE done INT DEFAULT 0; 
	DECLARE userCode VARCHAR(20);
	DECLARE cur_user CURSOR FOR SELECT code FROM user; 
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;  
	
	OPEN cur_user;
	out_loop:
		LOOP
		  FETCH cur_user INTO userCode;
			IF done =1 THEN
				LEAVE out_loop;
			END IF;
			CALL  deleteMenu(menuCode,userCode);	
			SET done = 0;
	END LOOP out_loop;
	CLOSE cur_user;
	
END