【转载】如何在MySQL存储过程中遍历查询结果集
转载地址:http://blog.jinshui8.com/blog/view/id-37.html
在储过程中循环查询结果需要使用到CURSOR(光标)
sql Code
-
CREATE PROCEDURE curdemo()
-
BEGIN
-
DECLARE done INT DEFAULT 0;
-
DECLARE a INT;
-
DECLARE b CHAR(225);
-
DECLARE cur CURSOR FOR SELECT id,title FROM test.t1; -- 这个语句声明一个光标保存记录集。也可以在子程序中定义多个光标,但是一个块中的每一个光标必须有唯一的名字
-
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
-
-
OPEN cur;
-
-
REPEAT -- 循环
-
FETCH cur INTO a, b;-- 这个语句用指定的打开光标读取下一行(如果有下一行的话),并且前进光标指针
-
IF NOT done THEN
-
INSERT INTO test.t2 VALUES (a,b);
-
END IF;
-
UNTIL done END REPEAT;-- 结束循环
-
-
CLOSE cur;-- 这个语句关闭先前打开的光标。
-
END
Parsed in 0.011 seconds at 65.03 KB/s, using GeSHi 1.0.8.11
本文为原创,如需转载请注明出处和本文链接!