最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

MYSQL嵌套游标产生混乱的解决方法及注意地方_MySQL

来源:懂视网 责编:小采 时间:2020-11-09 18:15:22
文档

MYSQL嵌套游标产生混乱的解决方法及注意地方_MySQL

MYSQL嵌套游标产生混乱的解决方法及注意地方_MySQL:bitsCN.com MYSQL嵌套游标产生混乱的解决方法及注意地方 1. 在编写存储过程中, 有时会处理些较复杂的数据, 用到多个游标, 并且嵌套使用,如果控制不好,在子层游标记录处理完后, 上层游标也会捕获NOT FOUND异常, 并改变标示值. 产生数据混乱.例: [sql
推荐度:
导读MYSQL嵌套游标产生混乱的解决方法及注意地方_MySQL:bitsCN.com MYSQL嵌套游标产生混乱的解决方法及注意地方 1. 在编写存储过程中, 有时会处理些较复杂的数据, 用到多个游标, 并且嵌套使用,如果控制不好,在子层游标记录处理完后, 上层游标也会捕获NOT FOUND异常, 并改变标示值. 产生数据混乱.例: [sql

bitsCN.com
MYSQL嵌套游标产生混乱的解决方法及注意地方 1. 在编写存储过程中, 有时会处理些较复杂的数据, 用到多个游标, 并且嵌套使用,如果控制不好,在子层游标记录处理完后, 上层游标也会捕获NOT FOUND异常, 并改变标示值. 产生数据混乱.例: [sql] BEGIN DECLARE name_stop int default 0; DECLARE cur_name CURSOR FOR SELECT NAME FROM mytable; DECLARE CONTINUE HANDLER FOR NOT FOUND SET name_stop =1; open cur_name; FETCH cur_name into v_name; START TRANSACTION; BEGIN DECLARE ext_stop int DEFAULT 0; DECLARE cur_ext CURSOR for select propertyid from propertys; DECLARE CONTINUE HANDLER FOR NOT FOUND SET ext_stop =1; .............................. 当子层cur_ext游标记录处理完后, 会抛出NOT FOUND, 不仅影响自身, 而且上层游标也会受影响, name_stop 会变成1, 这时就会跳出循环, 不再执行.
解决的办法是加入标记块放置复合语句中,如: BLOCK1:BEGIN....END BLOCK1;限制作用范围, 这样就能解决各游标间的干扰. 2. 在实际使用中, 可能会采用SELECT ... INTO ...语句进行赋值, 但是如果没有找到记录, 是不会把NULL值赋给相应变量, 而是抛出NOT FOUND.如果采用了游标, 这将会影响正常使用.所以, 最好把select into语句放入单独的复合语句, 并加入标记块,注意, 需要加入一个临时的HANDLER, 如果没有HANDLER捕获, 仍会跳入上层, 影响游标.正确使用方法, 如下所示: [sql] BLOCK4: BEGIN DECLARE temp_a int default 0; declare continue handler for not found set temp_a = -1; select account into v_exist_account from t_user where account = v_account limit 1; end BLOCK4; 如果v_exist_account有后续业务处理, 记得处理完后要清空值. 摘自 hxx688的专栏 bitsCN.com

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

MYSQL嵌套游标产生混乱的解决方法及注意地方_MySQL

MYSQL嵌套游标产生混乱的解决方法及注意地方_MySQL:bitsCN.com MYSQL嵌套游标产生混乱的解决方法及注意地方 1. 在编写存储过程中, 有时会处理些较复杂的数据, 用到多个游标, 并且嵌套使用,如果控制不好,在子层游标记录处理完后, 上层游标也会捕获NOT FOUND异常, 并改变标示值. 产生数据混乱.例: [sql
推荐度:
标签: 注意 的方法 以及
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top