MySQL 数据库使用事件调度器实现每日定时任务
在MySQL数据库中实现定时任务,需要用到 事件调度器的功能
1、在 MySQL数据库中启用事件调度器功能,执行SQL如下
-- 启用事件调度器 SET GLOBAL event_scheduler = ON;
2、创建 一个每日定时任务,SQL如下
-- 创建每日定时任务 DELIMITER $$ CREATE EVENT IF NOT EXISTS daily_cleanup ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(CURDATE(), INTERVAL 1 DAY) DO BEGIN -- 删除User表今天之前的数据 DELETE FROM User WHERE created_at < CURDATE(); END$$ DELIMITER ;
3、修改定时任务为每天 0点30分执行,SQL 语句如下
-- 修改事件调度计划 ALTER EVENT daily_cleanup ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(CURDATE(), INTERVAL 1 DAY) + INTERVAL 30 MINUTE DO BEGIN -- 删除 user 表今天之前的数据 DELETE FROM user WHERE created_at < CURDATE(); -- 删除 order 表今天之前的数据 DELETE FROM order WHERE created_at < CURDATE(); -- 删除 product 表今天之前的数据 DELETE FROM product WHERE created_at < CURDATE(); END;
4、其他更多功能和需求可以自行扩展实现。
作者:DotNet码农
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.


浙公网安备 33010602011771号