【备忘录】MySql存储过程,原创手写,已测试通过

 //包含4种测试情景,代码直接复制可用

BEGIN
-- 对查询列表结果进行修改等处理
-- [ 用游标插入或修改特定条件的值 ]
##定义判断变量 
DECLARE pro_id int(11); 
DECLARE pro_title varchar(500); 
DECLARE pro_msg varchar(500); 
DECLARE pro_status int(11); 

declare stop int default 0;
## 定义查询变量 
DECLARE _cur CURSOR FOR SELECT id,title,msg,`status` FROM test; 
-- 捕获异常
declare CONTINUE HANDLER FOR SQLSTATE '02000' SET stop = null;
### 打开 
OPEN _cur; 
## /*游标向下走一步,将查询出来的值付给定义的变量*/ 
FETCH _cur INTO pro_id,pro_title,pro_msg,pro_status; 
###循环判断 
WHILE ( stop is not null) DO

-- 1 修改条件为null 的值
-- update test set title=DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S') where title is null ;

-- 2 修改条件为 id=370的值 并加上if判断
-- IF (pro_id=370) THEN
-- update test set title=pro_id where id=370;
-- END IF;
-- 3 配合事件自动修改状态1
-- IF (pro_status is null || pro_status=0) THEN -- 测试使用"|"判断 
-- 4 配合事件自动修改状态2
IF (pro_status = -1) THEN -- 相等 
update test set msg='用户已被删除' where id=pro_id;
END IF;
-- 游标下移一行
FETCH _cur INTO pro_id,pro_title,pro_msg,pro_status; 
END WHILE; 
## 关闭 
CLOSE _cur; 
END

猜你喜欢

转载自blog.csdn.net/qq_15941409/article/details/83054444