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(); (责任编辑:IT) |