初学MySQL游标循环

寒冬的蚊子 2018-07-18 10:22:38

DROP PROCEDURE IF EXISTS CURSOR_test;

delimiter //
#创建名为xw的存储过程
CREATE PROCEDURE xw()
BEGIN
#声明三个变量
DECLARE vend_id VARCHAR(255);
DECLARE prod_id VARCHAR(255);
DECLARE prod_price VARCHAR(255);
#遍历数据结束标志
DECLARE done INT DEFAULT FALSE;
#定义一个名为mycursor的游标
DECLARE mycursor CURSOR FOR SELECT * FROM abcd;

#将结束标志绑定到游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=TRUE;
#打开游标
OPEN mycursor;
#开始循环
read_loop:LOOP

FETCH mycursor INTO vend_id,prod_id,prod_price;

IF done THEN
LEAVE read_loop;
END IF;

INSERT INTO abcd VALUES(vend_id,prod_id,prod_price);
END LOOP read_loop;
#关闭游标
CLOSE mycursor;
END;//
delimiter ;
CALL xw();
SELECT * FROM abcd;
初学者,为什么每次运行循环次数都不一样
...全文
217 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2018-07-18
  • 打赏
  • 举报
回复
INSERT INTO abcd VALUES(vend_id,prod_id,prod_price);
所以不一样才是对的

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧