1.什么是游标
需求:修改id为偶数的记录分数
DELIMITER &&
CREATE PROCEDURE test_cur_1()
BEGIN
-- 定义开关
DECLARE stopflag INT DEFAULT 0;
-- 定义数据存放的变量
DECLARE my_id VARCHAR(255) DEFAULT '';
-- 定义游标变量
DECLARE id_cur CURSOR FOR SELECT id FROM test_score WHERE id % 2 = 0;
-- 查找不到游标时,设置开关为1
DECLARE CONTINUE HANDLER FOR NOT FOUND SET stopflag = 1;
-- 开启游标
OPEN id_cur;
-- 游标向前走一步,去除一条记录放入数据变量中
FETCH id_cur INTO my_id;
-- 游标还没有到结尾
WHILE(stopflag=0) DO
BEGIN
-- 更新数据
UPDATE test_score SET NAME = CONCAT(NAME,id) WHERE id = my_id;
-- 游标向前走一步,去除一条记录放入数据变量中
FETCH id_cur INTO my_id;
END;
END WHILE;
-- 关闭游标
CLOSE id_cur;
END;
&&
DELIMITER ;
2.总结
1.游标是保存查询结果的临时内存区域
2.游标变量保存查询的临时结果,实际上就是查询结果集