荔枝桃子 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 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型