mysql存储过程使用游标循环修改数据
# 创建存储过程的标识
DELIMITER $
# 创建一个名字为DAY081001的存储过程
CREATE PROCEDURE DAY081001()
#开始写
BEGIN
# 定义参数名字和类型 默认值
DECLARE var_ID INT DEFAULT 1;
# 针对 SELECT shopstoreid FROM shopstore 建立游标 定义游标
DECLARE S_CURSOR CURSOR FOR SELECT shopstoreid FROM shopstore;
#开启游标
OPEN S_CURSOR;
#将游标得到的值放到var_ID里面 之后在游标范围中操作就只能这个参数了var_ID
FETCH S_CURSOR INTO var_ID;
#执行循环的条件 一定要用游标定义的参数名字 不要用数据库表的列名
WHILE (var_ID<=5) DO
#测试用的
SELECT var_ID;
#开始执行修改 shopstoreid(数据库表的列名)var_ID(游标定义的参数)
UPDATE shopstore SET storefansnum=7122 WHERE shopstoreid=var_ID;
#每次循环之后将条件加1 好执行一次循环
SET var_ID=var_ID+1;
#结束循环
END WHILE;
#关闭存储结构 这个是有顺序的
CLOSE S_CURSOR;
# 结束存储过程
END $
#删除存储过程
DROP PROCEDURE DAY081001
#执行存储过程
CALL DAY081001()