我有一个存储过程:
DELIMITER //
DROP PROCEDURE IF EXISTS cursor_example//
CREATE PROCEDURE cursor_example()
BEGIN
DECLARE niche_id INT;
DECLARE niche_name VARCHAR(100);
DECLARE curl CURSOR FOR SELECT * FROM `niche`;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN curl;
my_loop:LOOP
FETCH curl INTO niche_id, niche_name;
IF done=1 THEN
LEAVE my_loop;
END IF;
END LOOP my_loop;
CLOSE curl;
END//
DELIMITER ;问题是,在游标完成迭代之后,如何将小生境id和niche_name行从游标中删除。我不能作为变量从存储过程中获得结果集,不是吗?那么,用于存储过程的游标主要用于内部目的吗?
发布于 2012-09-05 10:21:05
如果结果是-“标量值”,那么您可以使用其中一个变体:
SELECT niche_id, niche_name;。如果结果是一组值,那么您应该填充另一个表,例如临时表。
另外,如果您想从表中读取一些数据并将其存储到另一个表中,请尝试使用插入..。选择语句而不是打开游标。
https://stackoverflow.com/questions/12278891
复制相似问题