您的位置:首页 > 数据库 > MySQL

mysql游标循环的使用

2016-01-11 15:24 477 查看
CREATE PROCEDURE `test`.`new_procedure` ()
BEGIN
-- 需要定义接收游标数据的变量
DECLARE a CHAR(16);
-- 游标
DECLARE cur CURSOR FOR SELECT i FROM test.t;
-- 遍历数据结束标志
DECLARE done INT DEFAULT FALSE;
-- 将结束标志绑定到游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-- 打开游标
OPEN cur;

-- 开始循环
read_loop: LOOP
-- 提取游标里的数据,这里只有一个,多个的话也一样;
FETCH cur INTO a;
-- 声明结束的时候
IF done THEN
LEAVE read_loop;
END IF;
-- 这里做你想做的循环的事件

INSERT INTO test.t VALUES (a);

END LOOP;
-- 关闭游标
CLOSE cur;

END
变量的定义不要和你的select的列的键同名!不然,fetch into 会失败!另外 :如果没有则插入数据,如果有则更新的方法:insert into `test` values (a,b) ON DUPLICATE KEY UPDATE `a`=c;P的嘞!!!看完也不会用啊!!谁来告诉我怎么遍历数组啊!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: