DROP PROCEDURE IF EXISTS `PROC_Modify_YID`;
CREATE PROCEDURE PROC_Modify_YID()
BEGIN
DECLARE mYID INT;
DECLARE mFlag INT;
DECLARE NewYID INT;
-- 遍历数据结束标志
DECLARE done INT DEFAULT FALSE;
declare auth_cur cursor for
SELECT YID,Flag FROM cradle_camera_param;
-- 打开游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; -- 绑定控制变量到游标,游标循环结束自动转true
open auth_cur;
-- 开始循环
myLoop: LOOP -- 开始循环体,myLoop为自定义循环名,结束循环时用到
-- 提取游标里的数据,这里只有一个,多个的话也一样;
FETCH auth_cur INTO mYID,mFlag;
-- 声明结束的时候
IF done THEN -- 判断是否继续循环
LEAVE myLoop; -- 结束循环
END IF;
set NewYID = mYID + mFlag;
SELECT mYID,mFlag,NewYID;
update cradle_camera_param set YID = NewYID WHERE Flag=mFlag;
COMMIT; -- 提交事务
END LOOP myLoop; -- 结束自定义循环体
close auth_cur;
END
CALL PROC_Modify_YID();