荔枝桃子 2020-12-10 19:28 采纳率: 44.4%
浏览 30
已结题

mysql 存储过程和定时器

 展示全平台书本订购榜和全平台周排行榜

订购榜表结构设计:日期(yyyymmdd)、ISBN、订购数量(报订单确认的订购数量)、统计时间

采用数据库的存储过程统计每天的书本订购数量,然后采用数据库的定时器调用存储过程,每天凌晨跑一次,统计上一天的书本订购情况。

 

  • 写回答

3条回答 默认 最新

  • 荔枝桃子 2020-12-15 15:18
    关注

    //删除存储过程
    DROP PROCEDURE IF EXISTS getGdsInfoRank;    
    //创建存储过程
    DELIMITER $$
        CREATE PROCEDURE getGdsInfoRank() 
        BEGIN
            DECLARE t_amount BIGINT;
            DECLARE t_isbn VARCHAR(256);
            DECLARE done INT;
            DECLARE cur_rank CURSOR for
            select count(*) as t_amount,isbn as t_isbn from t_ord_sub where date(order_time) =date_sub(curdate(),interval 1 day) and sub_status='可供' group by isbn;
            DECLARE CONTINUE HANDLER for not FOUND set done=1;
            open cur_rank;
            posLoop:LOOP
            FETCH cur_rank INTO t_amount,t_isbn;
                IF done=1 THEN
                    LEAVE posLoop;
                END IF;
            insert into t_gds_info_rank(day,isbn,amount,count_time) values(date_sub(curdate(),interval 1 day),t_isbn,t_amount,NOW());
            END LOOP posLoop;    
            CLOSE cur_rank;
        end$$
    DELIMITER ;

    //查看定时器是否开启
    SHOW VARIABLES LIKE 'event_scheduler';
    //查看事件
    SHOW EVENTS;
    //删除事件
    drop event if EXISTS eventGetGdsInfoRank;
    //创建事件--每天调用一次
    create event eventGetGdsInfoRank  
    on schedule 
    EVERY 1 day  
    STARTS '2020-12-12 00:06:00'  
    do call getGdsInfoRank();
    //开启事件
    ALTER EVENT eventGetGdsInfoRank ON  COMPLETION PRESERVE ENABLE;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月13日
  • 已采纳回答 9月13日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效