zoukankan      html  css  js  c++  java
  • mysql 定时任务

    mysql 定时任务


    参考博客:https://www.cnblogs.com/laowu-blog/p/5073665.html等资料,进行练习学习。


    (1)首先查看mysql是否开启了定时任务:

    mysql> show variables like '%event_%';

    +----------------------------------------------------------+-------+
    | Variable_name | Value |
    +----------------------------------------------------------+-------+

    | event_scheduler | OFF |
    +----------------------------------------------------------+-------+


    (2)如果值是OFF,表示没有开启,然后开启定时任务:

    SET GLOBAL event_scheduler = 1;


    (3)创建存储过程和mysql事件:

    需求为每天1点,自动检查商品里还有30天过期的数据,更新状态未下架,并标注原因:

    DELIMITER //    
    
    DROP PROCEDURE IF EXISTS check_package_enddate//

    CREATE PROCEDURE check_package_enddate_proc() BEGIN UPDATE goods set status=2,comment=concat('取消时间:',now(),' 原因:套餐激活截止时间距今不足30天,系统自动取消。') where end_date <= DATE_SUB(NOW(), INTERVAL 30 DAY); END// DROP EVENT IF EXISTS check_package_enddate_event// CREATE EVENT check_package_enddate_event ON SCHEDULE EVERY 1 DAY STARTS TIMESTAMP DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR) ON COMPLETION PRESERVE DO BEGIN CALL check_package_enddate_proc(); END// DELIMITER ;

    知识总结:

      1、使用到了mysql的存储过程的删除和添加;

      2、使用到了mysql的定时事件的删除和添加;

      3、使用了mysql函数now(),获取当前日期;

      4、使用了mysql函数concat(),字符串连接函数;

      5、使用了mysql函数DATE_SUB(),从日期减去指定的时间间隔;

      6、使用了delimiter 修改sql语句结束符;

      7、使用了mysql函数DATE_ADD(),从日期加上指定的时间间隔;

      8、事件的开始时间必须大于当前时间。


  • 相关阅读:
    ASP.NET Web Optimization Framework
    HearthBuddy Plugin编写遇到的问题
    HearthBuddy的plugin加载
    Unexpected ConvertTo-Json results? Answer: it has a default -Depth of 2
    HearthBuddy卡牌无法识别
    HearthstoneBot
    网络传输中的三张表,MAC地址表、ARP缓存表以及路由表
    DNS原理及其解析过程(转)
    React系列之--props属性
    react中constructor( )和super( )的具体含义以及如何使用
  • 原文地址:https://www.cnblogs.com/gyfluck/p/9548223.html
Copyright © 2011-2022 走看看