mysql存储过程while 遍历游标
生活随笔
收集整理的這篇文章主要介紹了
mysql存储过程while 遍历游标
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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 遍历游标的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: myeclipse10.1破解方法
- 下一篇: (5) ebj学习:ejb用jpa操作数