• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MYSQL存储过程中使用游标嵌套的实例

mysql 搞代码 4年前 (2022-01-09) 48次浏览 已收录 0个评论

MYSQL存储过程中使用游标嵌套的实例 MySQL 存储过程 delimiter $$drop procedure if exists findErrorLifeRoute $$CREATE PROCEDURE findErrorLifeRoute() BEGINdeclare routeId,routeStopId BIGINT ; declare str,tmp_street VARCHAR(255) ; DECLARE l_done

MYSQL存储过程中使用游标嵌套的实例

MySQL 存储过程 <style> .CodeEntity .code_pieces ul.piece_anchor{width:25px;position:absolute;top:25px;left:-30px;z-index:1000;} .CodeEntity .code_pieces ul.piece_anchor li{width:25px;background: #efe;margin-bottom:2px;} .CodeEntity .code_pieces ul.piece_anchor li{border-left:3px #40AA63 solid;border-right:3px #efe solid;} .CodeEntity .code_pieces ul.piece_anchor li:hover{border-right:3px #40AA63 solid;border-left:3px #efe solid;} .CodeEntity .code_pieces ul.piece_anchor li a{color: #333;padding: 3px 10px;} .CodeEntity .code_pieces .jump_to_code{visibility:hidden;position:relative;} .CodeEntity .code_pieces .code_piece:hover .jump_to_code{visibility:visible;} .CodeEntity .code_pieces .code_piece:hover .jump_to_code a{text-decoration:none;} .CodeEntity .code_pieces h2 i{float:right;font-style:normal;font-weight:normal;} .CodeEntity .code_pieces h2 i a{font-size:9pt;background: #FFFFFF;color:#00A;padding: 2px 5px;text-decoration:none;} </style> <!—ecms

    –> <!—ecms

  • $velocityCount
  • –> <!—ecms

–>

delimiter $$drop procedure if exists findErrorLifeRoute $$CREATE PROCEDURE findErrorLifeRoute()   BEGINdeclare routeId,routeStopId BIGINT   ; declare str,tmp_street VARCHAR(255)  ; DECLARE l_done,num,life,localId,tmp_localId INT DEFAULT  0;-- 声明两个游标,第二个游标使用到第一个的查询结果DECLARE grade_csr cursor  FOR SELECT route_id FROM routes where   LIFE_CYCLE_STATUS35001;DECLARE class_csr cursor  FOR SELECT LOCATION_INNER_ID,STREET FROM route_stops  WHERE ROUTE_ID=routeId order by STOP_NUMBER asc;DECLARE CONTINUE HANDLER FOR NOT FOUND SET l_done=1;  OPEN grade_csr;-- 第一个循环  grade_loop: LOOP   -- Loop through org_grade    FETCH grade_csr into routeId;    IF l_done=1 THEN       LEAVE grade_loop;    END IF;		SET num=0;		set tmp_street=null;		set tmp_localId=0;    OPEN class_csr;-- 第二个循环    class_loop: LOOP      -- Loop through class in grade.      FETCH class_csr INTO localId,str;      IF l_done=1 THEN         LEAVE class_loop;      END IF;      if localId =tmp_localId or (str is not null and str=tmp_street) THEN				set tmp_street=str;				set tmp_localId=localId;			else				set num=num+1;				set tmp_street=str;				set tmp_localId=localId;		end if;		 -- 结束第一个循环    END LOOP class_loop;    CLOSE class_csr;    SET l_done=0;		set life=36000+(num-1)*100+6; 		INSERT into route_tmp (select ROUTE_ID,LIFE_CYCLE_STATUS,num,life,ACCOUNT_ID,str <b>本文来源gao@dai!ma.com搞$代^码!网7</b>from routes r where r.ROUTE_ID=routeId and LIFE_CYCLE_STATUS=life  );-- 结束第二个循环  END LOOP grade_loop;  CLOSE grade_csr;END $$delimiter ;

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MYSQL存储过程中使用游标嵌套的实例
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址