mysql存儲過程中游標遍歷的方法:首先取值,取多個字段;然后遍歷數(shù)據結束標志,將結束標志綁定到游標,代碼為【DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;】。
華安網站建設公司成都創(chuàng)新互聯(lián),華安網站設計制作,有大型網站制作公司豐富經驗。已為華安上1000+提供企業(yè)網站建設服務。企業(yè)網站搭建\外貿網站制作要多少錢,請找那個售后服務好的華安做網站的公司定做!
mysql存儲過程中游標遍歷的方法:
CREATE DEFINER=`root`@`%` PROCEDURE `updStatus`()
BEGIN
DECLARE startTime DATETIME;
DECLARE endTime DATETIME;
DECLARE curTime DATETIME;
DECLARE id VARCHAR(36);
DECLARE estatus VARCHAR(4);
-- 遍歷數(shù)據結束標志
DECLARE done INT DEFAULT FALSE;
-- 游標
DECLARE examIds CURSOR FOR SELECT EXAM_ID FROM t_exam WHERE EXAM_STATUS = 1 or EXAM_STATUS = 2;
-- 將結束標志綁定到游標
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN examIds; -- 遍歷
read_loop: LOOP
-- 取值 取多個字段
FETCH NEXT from examIds INTO id;
IF done THEN
LEAVE read_loop;
END IF;
SELECT EXAM_STATUS INTO estatus FROM t_exam WHERE EXAM_ID = id ;
IF estatus =1 THEN
SELECT NOW() INTO curTime;
SELECT EXAM_START_TIME INTO startTime from t_exam WHERE EXAM_ID = id ;
SELECT EXAM_END_TIME INTO endTime from t_exam WHERE EXAM_ID = id ;
IF curTime >= startTime AND endTime > curTime THEN
UPDATE t_exam SET EXAM_STATUS = 2 WHERE EXAM_ID = id;
ELSEIF curTime >= endTime THEN
UPDATE t_exam SET EXAM_STATUS = 3 WHERE EXAM_ID = id;
END IF;
ELSE
SELECT NOW() INTO curTime;
SELECT EXAM_END_TIME INTO endTime from t_exam WHERE EXAM_ID = id ;
IF curTime >= endTime THEN
UPDATE t_exam SET EXAM_STATUS = 3 WHERE EXAM_ID = id;
END IF;
END IF;
END LOOP;
CLOSE examIds;
END更多相關免費學習推薦:mysql教程(視頻)
當前名稱:mysql存儲過程中游標如何遍歷
轉載源于:http://chinadenli.net/article2/cpceoc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站改版、虛擬主機、動態(tài)網站、響應式網站、微信公眾號、靜態(tài)網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)