视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MYSQL定时清除备份数据的具体操作
2020-11-09 21:13:53 责编:小采
文档


create PROCEDURE sched_clean() --命名
BEGIN
-- 定义参数
DECLARE begin_time BIGINT DEFAULT UNIX_TIMESTAMP(DATE_SUB(CURRENT_DATE(),interval 31 DAY))*1000;
DECLARE end_time BIGINT DEFAULT UNIX_TIMESTAMP(DATE_SUB(CURRENT_DATE(),interval 30 DAY))*1000;
-- 更新数据
UPDATE test_table SET rule_cost=null WHERE start_time>begin_time and start_time<end_time;
END

创建定时任务

当创建好了存储过程后,我们就可以定时调用该存储过程了

CREATE EVENT `demo`.`day_of_clean_event`
ON SCHEDULE EVERY '1' DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
ON completion preserve disable
DO call sched_clean();

代码说明:

  • CREATE EVENT demo.day_of_clean_event在demo数据库中创建一个名为day_of_clean_event事件
  • 表示创建时间定时周期,以及开始时间,该处表示从明天1点从开始,每天执行一次该任务
  • 第三行表示创建后并不开始生效
  • 第四行表示需要执行的任务(这里你也可以直接编写sql语句)
  • 相关查询

    查询本机的所有事件

    SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;

    开启/关闭已经创建好的事件

    alter event event_name on completion preserve enable;//开启定时任务
    alter event event_name on completion preserve disable;//关闭定时任务

    4|0值得注意的地方

    如果你的全局参数没有配置开启定时任务,则会导致你虽然执行了开启已经创建好的事件,但是你在information_schema.EVENTS表中还是查询不到记录

    4|1常见的周期定时规则

    ① 周期执行 – 关键字 EVERY

    单位有:second, minute, hour, day, week(周), quarter(季度), month, year,如:

    on schedule every 1 second //每秒执行1次
    on schedule every 2 minute //每两分钟执行1次
    on schedule every 3 day //每3天执行1次

    ② 在具体某个时间执行 – 关键字 AT, 如:

    on schedule at current_timestamp()+interval 5 day // 5天后执行
    on schedule at current_timestamp()+interval 10 minute // 10分钟后执行
    on schedule at '2016-10-01 21:50:00' // 在2016年10月1日,晚上9点50执行

    ③ 在某个时间段执行 – 关键字 STARTS ENDS, 如:

    on schedule every 1 day starts current_timestamp()+interval 5 day ends current_timestamp()+interval 1 month // 5天后开始每天都执行执行到下个月底
    on schedule every 1 day ends current_timestamp()+interval 5 day //从现在起每天执行,执行5天

    总结

    下载本文
    显示全文
    专题