DELIMITER $$
CREATE PROCEDURE queryEduTopologyPerformance(IN edu_id VARCHAR(50),OUT ebu_number_total INT ,
OUT upstream_total INT,OUT downstream_total INT,OUT alarm_number_total INT)
BEGIN-- 定义变量DECLARE ebuId VARCHAR(50);  -- 游标接收变量DECLARE nowTime DATETIME; -- 当前时间DECLARE beforeTwoMinuteTime DATETIME; -- 两分钟前的时间DECLARE upstreamTemp INT; -- ebu上行流量临时变量DECLARE downstreamTemp INT; -- ebu下行流量临时变量DECLARE alarmTemp INT; -- ebu告警临时变量DECLARE i INT DEFAULT 0;
-- 遍历数据结束标志DECLARE done INT DEFAULT FALSE;DECLARE cur CURSOR FOR SELECT ebu.id FROM  cap_ebu ebu,cap_edu edu WHERE ebu.edu_id = edu.id  AND edu.id = edu_id;-- 将结束标志绑定到游标DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;-- 为变量赋值SET ebu_number_total = 0;SET upstream_total = 0;SET downstream_total = 0;SET alarm_number_total = 0;SET upstreamTemp = 0;SET downstreamTemp = 0;SET alarmTemp = 0;SET nowTime = NOW();SET beforeTwoMinuteTime = DATE_SUB(nowTime, INTERVAL 1 MINUTE);SELECT COUNT(*) INTO ebu_number_total FROM  cap_ebu ebu,cap_edu edu WHERE ebu.edu_id = edu.id  AND edu.id = edu_id;OPEN cur;loop1: WHILE i<ebu_number_total DO -- 遍历开始FETCH cur INTO ebuId; -- 获取游标里的ebuId值-- 重置变量值SET i = i + 1;SET upstreamTemp = 0 ;SET downstreamTemp = 0;SET  alarmTemp  = 0 ;-- 计算总流量,总告警数SELECT upstream INTO upstreamTemp FROM ebu_stream_view WHERE TIME >=beforeTwoMinuteTime  AND TIME <=nowTime  AND id = ebuId ORDER BY TIME DESC LIMIT 0,1;SELECT downstream INTO downstreamTemp FROM ebu_stream_view WHERE TIME >=beforeTwoMinuteTime  AND TIME <=nowTime  AND id = ebuId ORDER BY TIME DESC LIMIT 0,1;SET upstream_total = upstream_total + upstreamTemp;SET downstream_total = downstream_total + downstreamTemp;SELECT alarmNumber INTO alarmTemp FROM current_alarm WHERE last_update_time >=beforeTwoMinuteTime AND last_update_time <=nowTime AND device_id = ebuId ORDER BY last_update_time DESC,ceate_time DESC LIMIT 0,1;SET alarm_number_total = alarm_number_total + alarmTemp;END WHILE loop1;CLOSE cur; END $$
DELIMITER ; 

mysql存储过程while 遍历游标相关推荐

  1. mysql 存储过程声明式游标_Mysql 存储过程中使用游标循环读取临时表

    游标 游标(Cursor)是用于查看或者处理结果集中的数据的一种方法.游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力. 游标的使用方式 定义游标:Declare 游标名称 CURSOR ...

  2. oracle往游标中存数据,Oracle数据库:ORACLE11G在存储过程里面遍历游标

    1,第几种使用For 循环 for循环是比较简单实用的方法. 首先,它会自动open和close游标.解决了你忘记打开或关闭游标的烦恼. 其次,自动声明一个记录类型及定义该类型的变量,并自动fetch ...

  3. MySQL存储过程:利用游标+临时表实现查询

    MySQL存储过程使用游标.临时表实现动态SQL查询 2020.3.24 用能第二周周二上午,任务需求:编写存储过程查询监测设备状态以及目标监测设备状态.(任务完成) 改存储过程包含了大量相关知识,特 ...

  4. mysql存储过程语法和游标的语法_MySQL游标存储过程-语法点滴

    CREATE PROCEDURE my_proc() BEGIN -- 需要定义接收游标数据的变量 DECLARE sname VARCHAR(100); DECLARE cattype VARCHA ...

  5. mysql与oracle遍历游标

    MYSQL部分 CREATE DEFINER=`root`@`localhost` PROCEDURE `ProcedureTest`() BEGINDECLARE i int;-- 设置初始值,用于 ...

  6. mysql存储过程编写

    2019独角兽企业重金招聘Python工程师标准>>> 记录一下自己写的一个mysql存储过程,在游标方面和oracle有些不一样,mysql是使用一个HANDLER来处理数据读取完 ...

  7. mysql存储过程之游标遍历数据表

    今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕迹. ? 1  BEGIN  2      ...

  8. MySQL存储过程 游标

    MySQL存储过程  游标 如何在存储过程中使用MySQL游标来遍历SELECT语句返回的结果集 MySQL游标简介 要处理存储过程中的结果集,请使用游标.游标允许您迭代查询返回的一组行,并相应地处理 ...

  9. MySQL存储过程中游标使用

    在使用游标的时候,使用LOOP没有响应,后找到使用REPEAT实现,以下是代码: 建表语句 DROP table IF EXISTS test_table; create table test_tab ...

最新文章

  1. 九章量子计算机 科学杂志,张礼立 : 中国 “九章”量子计算机到底厉害在哪?...
  2. 【详细了解】Nginx 除了负载均衡,还能做什么?
  3. 达摩院最新AI技术助力天猫双11,提供接近真人的语音交互体验
  4. unity平行光太亮?物体发白?可能你使用了2个或多个平行光
  5. Vivado debug异常现象
  6. 优化更新语句中的标量子查询
  7. 浙江大学_包家立教授计算生物学2_信源编码理论
  8. Windows Server 2012 R2磁盘分区
  9. webpack之HTML、css和js代码压缩
  10. EXCEL 分组取前十的数据
  11. oracle rat结果分析比较,Oracle RAT- Real Application Testing
  12. fastadmin 后台新增和编辑成功后刷新整个页面
  13. 防拍照防截屏,360企业安全云推“屏幕水印”助企业破解信息安全难题
  14. 数据结构实践项目-------停车场管理系统
  15. linux 下通过 httpd服务创建网页
  16. 接口文档管理工具showDoc
  17. 魔兽争霸 php文件,[War3]Fdf文件详解,简单的UI教程演示-by CarlosX
  18. Kafka 中的这些设计思想值得一学!
  19. Android USB Camera(1) : 调试记录
  20. 《Java 8实战》

热门文章

  1. 汇编语言 将a段和b段中的数据依次相加,结果存放在c段中
  2. try catch用法_synchronized用法总结
  3. Effective Java之请不要在新代码中使用原生态类型(二十三)
  4. leetcode--872. 叶子相似的树
  5. 【报错】TypeError: ‘int‘ object is not callable_Python系列学习笔记
  6. 【思维】最大降雨量(解题报告)
  7. python没有pil模块_Python离线安装PIL 模块的方法
  8. oracle loder nextval,ORA-07445: 出现异常错误: 核心转储
  9. php识别名片,用户信息名片怎么利用PHP实现自动生成
  10. python中sorted_Python中sorted()方法的用法