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

王朝mysql·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

本文中介绍了一个MySQL的存储过程,其中涉及Cursor的使用,示例如下:

CREATE PROCEDURE `justifyGroupNum`()

NOT DETERMINISTIC

SQL SECURITY DEFINER

COMMENT ''

BEGIN

/*how to run:call justifyGroupNum()*/

DECLARE p_group_id int;

declare p_num int;

declare stopFlag int;

DECLARE cursor_name CURSOR

FOR select c_group_id,count(*) as num

from `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;

REPEAT

FETCH cursor_name INTO p_group_id,p_num;

begin

update t_groupinfo set c_member_number=p_num where c_group_id=p_group_id;

end;

UNTIL stopFlag = 1

END 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()

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航