Mysql使用存储过程和游标

来源:互联网 发布:金山数据恢复软件多大? 编辑:程序博客网 时间:2024/05/18 20:35
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 forSELECT 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();
原创粉丝点击