MySQL存儲過程-循環遍歷查詢到的結果集

                                                                    MySQL存儲過程-循環遍歷查詢到的結果集

1、創建存儲過程

      (更好的閱讀體驗,請移步我的個人博客)根據MySQL的語法創建存儲過程,要注意的是如果循環遍歷查詢到的結果集,取出結果集中的數據做操作。

CREATE DEFINER=`root`@`%` PROCEDURE `alter_view_counts`()
BEGIN
	#聲明結束標識
	DECLARE end_flag int DEFAULT 0;
	
	DECLARE albumId bigint;
	
	#聲明遊標 album_curosr
	DECLARE album_curosr CURSOR FOR SELECT album_id FROM album;
	
	#設置終止標誌
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET end_flag=1;
	
	#打開遊標
	OPEN album_curosr;
	
	#遍歷遊標
	REPEAT
		#獲取當前遊標指針記錄,取出值賦給自定義的變量
		FETCH album_curosr INTO albumId;
			#利用取到的值進行數據庫的操作
			UPDATE album SET album.views_count= (SELECT SUM(light_chat.views_count) FROM `light_chat` WHERE light_chat.album_id = albumId) WHERE album.album_id = albumId;
	# 根據 end_flag 判斷是否結束
	UNTIL end_flag END REPEAT;
	
	#關閉遊標
	close album_curosr;

END

2,調用存儲過程

CALL alter_view_counts()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章