广

MYSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

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

    2018-05-16 07:55:40 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布
    示例如下:
    代码如下:

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

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告