原文出自:http://shitou521.iteye.com/blog/1069027
BEGIN
#定义 变量
DECLARE a INT;
DECLARE b VARCHAR (30);
#此变可有可无,为了给个该存储函数执行成功后给个提示,运行下便知道
DECLARE str VARCHAR (300);
#DECLARE s INT;
#这个用于处理游标到达最后一行的情况
DECLARE s INT DEFAULT 0;
#声明游标cursor_name(cursor_name是个多行结果集)
DECLARE cursor_name CURSOR FOR SELECT
id,
`name`
FROM
from_data;
#设置一个终止标记
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000'
SET s = 1;
SET str = "--";
#打开游标
OPEN cursor_name;
#获取游标当前指针的记录,读取一行数据并传给变量a,b
FETCH cursor_name INTO a, b;
#开始循环,判断是否游标已经到达了最后作为循环条件
WHILE s <> 1 DO
SET str = CONCAT(str, s);
INSERT INTO to_data (id, `name`) VALUES (a, b);
#读取下一行的数据
FETCH cursor_name INTO a, b;
END
WHILE;
#关闭游标
CLOSE cursor_name;
SELECT str;
#语句执行结束
END