荔枝桃子 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 射频功率问题,解答者有酬谢!
  • ¥80 构建降雨和积水的预测模型
  • ¥15 #Qt Transform setTransform()在鼠标拖动移动视角是一致在原地不动,无法变换视角(细微观察似乎视图有在原地抖动),无法变换视角(细微观察似乎视图有在原地抖动)
  • ¥50 如何利用无人机拍摄的数码照片测量鸟卵的长短径
  • ¥100 github贡献者给与奖励
  • ¥15 使用DS18B20+ESP8266获取温度数据返回-127.00
  • ¥15 odbc代码新增sqlserver数据源
  • ¥15 求一个USB指纹识别的驱动
  • ¥15 wps中工作表与工作表之间怎么汇总信息?
  • ¥50 请教Windows server 2012 R2的DCOM配置问题