您的位置:首页 > 数据库 > MySQL

Mysql使用存储过程和游标

2017-09-30 15:36 330 查看
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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql