首页 > 数据库 > MySQL > 正文

MySQL的存储过程写法和"Cursor"的使用

2024-07-24 12:57:55
字体:
来源:转载
供稿:网友
本文中介绍了一个MySQL的存储过程,其中涉及Cursor的使用,示例如下:

CREATE PROCEDURE `justifyGroupNum`()NOT DETERMINISTICSQL SECURITY DEFINERCOMMENT ''BEGIN/*how to run:call justifyGroupNum()*/DECLARE p_group_id int;declare p_num int;declare stopFlag int;DECLARE cursor_name CURSORFOR select c_group_id,count(*) as numfrom `t_group_member`where c_valid in (3,4)group by c_group_id;DECLARE CONTINUE HANDLER FOR NOT FOUND set stopFlag=1;OPEN cursor_name;REPEATFETCH cursor_name INTO p_group_id,p_num;beginupdate t_groupinfo set c_member_number=p_num where c_group_id=p_group_id;end;UNTIL stopFlag = 1END REPEAT;CLOSE cursor_name;END;

总结:

1、注意设置游标的countinue handler:DECLARE CONTINUE HANDLER FOR NOT FOUND set stopFlag=1;

2、注意REPEAT和UTILE [停止条件] END REPEAT的使用,否则不会循环;

3、如何RUN,输入并执行:call justifyGroupNum()


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表