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;

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

  • 相关阅读:
    @media screen针对不同移动设备-响应式设计
    闭包的一些例子
    es6 新关键字const
    es6 新关键字let
    Unity 多屏(分屏)显示,Muti_Display
    小米手机常用操作
    Charles使用笔记
    AKKA学习笔记
    Gatling-Session
    Scala学习笔记-6-其他
  • 原文地址:https://www.cnblogs.com/DawnCHENXI/p/9352853.html
Copyright © 2011-2022 走看看