MYSQL,当游标成为一种负担

在写MYSQL 存储过程当中遇到了一个问题:当条件1(cur1中存在一个cur2)和条件2(使用了DECLARE CONTINUE HANDLER FOR NOT FOUND )同时具备,内部循环cur2会造成cur2不能循环FETCH

比如下面代码:

declare cur1 cursor for .....;

declare cur2 cursor for .....;

declare continue handler for not found set stop = true;

open cur1

    loop

    #(2)

    open cur2

        do something...

......


问题处在内部的cur2循环,当cur1第一次循环结束后cur2已经到达了结尾,那么cur1的第二次循环就不能够再次遍历cur2了

本来一个合理的解决方法是 把cur2的定义放到#(2)处(网上有人写过这样的代码,把cur2作为一个局部的cursor 处理)这样就能够保证cur2打开的时候为止始终都是在开始位置,但是我也这样写了,出现了语法错误;而且另外一个问题是,当把cur2作为局部cursor处理,上面定义的...handler for not found ....是否会把cur2纳入处理范围,这个是不确定的

对于这种问题,不知道MYSQL该怎么处理的!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值