最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
MySql存储过程游标循环解决方式
时间:2026-06-15 08:47:48 编辑:袖梨 来源:一聚教程网
问题
在mysql的存储过程中使用了游标去循环,之前使用是没问题,后续加入了一些逻辑,直接跳出循环了,不走循环里面的逻辑、

解决
在mysql中主要用以下的方式来声明游标与使用游标:
# 声明标志位,来退出循环declare done int default 0;# 声明当游标中找不到数据时,设置done为1.DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
游标的使用:
open cur;posLoop:LOOPfetch cur into v_bjfh,v_yz,v_yjjb,v_dw;if done = 1 then leave posLoop;end if;-- 关闭循环end loop posLoop;-- 关闭游标close cur;
现在问题关键点在于,走到 if done = 1 时,直接跳出了。那说明之前设置的done的默认值没有生效。
所以,在进入循环之前,就给done再次设置一个默认值0。
set done = 0;open cur;posLoop:LOOPfetch cur into v_bjfh,v_yz,v_yjjb,v_dw;if done = 1 then leave posLoop;end if;-- 关闭循环end loop posLoop;-- 关闭游标close cur;
由此,解决了问题,但是不知道为什么这个done之前是在哪里给设置成了1.
调试
mysql不像oracle那样,可以进行断点调试,其实调试起来是比较麻烦。一般采用在里面写select输出进行调试,如下:
select done;
输出一个定义的变量来进行调试。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
您可能感兴趣的文章:- MySQL 存储过程、游标、存储函数与触发器最佳实践
- MySQL存储过程、游标与触发器示例详解
- mysql存储过程游标之loop循环解读
- mysql存储过程多层游标循环嵌套的写法分享
- mysql数据库存储过程之游标(光标cursor)详解
- MySql存储过程和游标的使用实例
- Mysql 存储过程中使用游标循环读取临时表
相关文章
- 《梦幻西游》迷失之地铜之章暗影龙剧情如何通关-暗影龙剧情详细通关流程 08-21
- 《梦幻西游》天籁之音活动如何玩-天籁之音活动解析 08-21
- 《梦幻西游》体质套装详细说明-不同等级套装属性对比 08-21
- 星际矿业战斗系统详细说明 08-21
- 极限竞速地平线6第1赛季夏季季节赛玩法指南 08-21
- 小米4a路由器百兆版管理地址在哪(小米4a路由器百兆版管理地址详解) 08-21