MySQLストアド・プロシージャ-クエリの結果セットをループします.
895 ワード
MySQLストアド・プロシージャ-クエリの結果セットをループします.
1、ストレージプロセスの作成
MySQLの構文に基づいてストアド・プロシージャを作成します.クエリの結果セットをループし、結果セットのデータを取り出して操作する場合に注意してください.
2、ストレージ・プロシージャの呼び出し
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()