mysql存储过程游标到底怎么循环的?

jlljmy2000 2009-03-19 04:41:04
CREATE PROCEDURE `p_temp1`()
BEGIN
DECLARE v_loop INT DEFAULT 0;
DECLARE v_1 BIGINT UNSIGNED;

DECLARE data_1
CURSOR FOR
select id from table_1 ;

DECLARE EXIT HANDLER FOR NOT FOUND
SET v_loop=1;
OPEN data_1;
WHILE v_loop = 0 DO

FETCH data_1 INTO v_1;

insert into temp_lj_4444(name,sp_name) values(v_1,v_loop);
END WHILE;
CLOSE data_1;
END;

我上面这个存储过程, 我的table_1只有一条记录
但是为什么在执行完这个过程后, 我的 temp_lj_4444表中竟然插入了两条记录。
请大家帮忙看下!
...全文
1000 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
懒得去死 2010-02-28
  • 打赏
  • 举报
回复
引用 3 楼 error_case 的回复:
引用 1 楼 yueliangdao0608 的回复:
给你个例子,你就知道你哪里不对了。


http://blog.chinaunix.net/u/29134/showart_1071056.html

老大,你给你连接打不开啊



现在可以打开了,看看吧。
cube_chen 2010-02-24
  • 打赏
  • 举报
回复
引用 1 楼 yueliangdao0608 的回复:
给你个例子,你就知道你哪里不对了。


http://blog.chinaunix.net/u/29134/showart_1071056.html


老大,你给你连接打不开啊
deyygywxf 2010-02-22
  • 打赏
  • 举报
回复
DECLARE EXIT HANDLER FOR NOT FOUND
SET v_loop=1;
应该改成DECLARE CONTINUE HANDLER FOR NOT FOUND
SET v_loop=1;
懒得去死 2009-04-14
  • 打赏
  • 举报
回复
给你个例子,你就知道你哪里不对了。


http://blog.chinaunix.net/u/29134/showart_1071056.html

56,679

社区成员

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

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