BEGIN
DECLARE row_data INT DEFAULT 0;
DECLARE all_sum INT DEFAULT 0;
-- 初始化定义
DECLARE tail_flag INT DEFAULT -1;
DECLARE data_cursor CURSOR FOR SELECT id FROM `tb_test`;
-- 关键点:游标循环完所有数据的时候,设置tail_flag为1
DECLARE CONTINUE HANDLER FOR NOT FOUND SET tail_flag=1;
OPEN data_cursor;
data_loop: LOOP
FETCH data_cursor INTO row_data;
-- 关键点:如果标记tail_flag为1,表示没有数据了,退出data_loop这个循环
IF tail_flag = 1 THEN
LEAVE data_loop;
END IF;
SET all_sum = all_sum + row_data;
END LOOP data_loop;
INSERT INTO tb_test VALUES(all_sum);
CLOSE data_cursor;
END
mysql游标如何优雅的离开循环
最新推荐文章于 2023-02-02 11:38:14 发布