zoukankan      html  css  js  c++  java
  • Mysql:存储过程游标不进循环的原因详解

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

    本篇博客给刚接触存储过程的朋友做个引导作用,目的是解决游标不走循环

    很多人发现他的游标,无论是嵌套循环还是单层的循环,都不会走,或者只走一次,但是从数据上看它并不应该走一次,我把结论给大家说一下

    很多人都有这俩行中的一行

       DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
       DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

    它的作用是什么呢?

    就是在下面的执行过程中,一旦有空记录(就是没有返回结果),或者一旦有异常,就会把done设置为1,你循环的时候,判断的done。所以就会出现循环不走的问题

    解决方案:

      1.异常的话需要自己排掉

      2.如果是嵌套循环,需要在内层循环结束后加上一个    set done=0;

      3.如果你在循环内或者循环前还查了东西,而它没有记录返回,它也会把done改为1,所以,如果你不能删掉那条查询语句的话,就得在后面 set done=0;

    大致意思就是这样,可以去尝试一下!!!!!

  • 相关阅读:
    dd命令测试IO
    手工释放linux内存——/proc/sys/vm/drop_caches
    CNN中的卷积理解和实例
    Python map() 函数
    Python filter() 函数
    Python 用 os.walk 遍历目录
    在python中读写matlab文件
    人生, 不要在别扭的事上纠结
    javascript 最佳实践 ( 24 章 )
    CSS权威指南(第3版)
  • 原文地址:https://www.cnblogs.com/DawnCHENXI/p/9352853.html
Copyright © 2011-2022 走看看