荔枝桃子 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日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵