存储过程双层循环_mysql嵌套存储过程实现循环嵌套
下面是工作中使用到的一個mysql嵌套循環(huán)存儲過程,因為寫的比較少,開始寫花費了一點時間,特此記錄一下
DELIMITER //
CREATE PROCEDURE handleHisNewCommentData()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE topId INT;
DECLARE topComments_cur CURSOR FOR SELECT ID
FROM
T_COMMENT
WHERE REPLY_ID = 0;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN topComments_cur;
data_loop: LOOP
-- 取值 取多個字段
FETCH topComments_cur
INTO topId;
IF done
THEN
LEAVE data_loop;
END IF;
CALL updateCommentRootId(topId, topId);
SELECT topId;
END LOOP;
CLOSE topComments_cur;
END//
CREATE PROCEDURE updateCommentRootId(replyId INT, rootId INT)
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE commentId INT;
DECLARE comments_cur CURSOR FOR SELECT ID
FROM
T_COMMENT
WHERE REPLY_ID = replyId;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN comments_cur;
data_loop: LOOP
-- 取值 取多個字段
FETCH comments_cur
INTO commentId;
IF done
THEN
LEAVE data_loop;
END IF;
UPDATE T_NEW_COMMENT
SET ROOT_ID = rootId
WHERE id = commentId;
CALL updateCommentRootId(commentId, rootId);
END LOOP;
CLOSE comments_cur;
END//
DELIMITER ;
CALL handleHisNewCommentData;
DROP PROCEDURE handleHisNewCommentData;
DROP PROCEDURE updateCommentRootId;
總結
以上是生活随笔為你收集整理的存储过程双层循环_mysql嵌套存储过程实现循环嵌套的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6 频率_六级连续6年出现频率最高的20
- 下一篇: crontab shell 每5秒执行_