mysql 创建定时任务清理指定表
一、创建定时任务
1、确保MySQL的事件调度器已经开启。可以通过以下SQL命令检查是否开启:
SHOW VARIABLES LIKE 'event_scheduler';
2、如果返回的值为OFF,则可以通过以下命令开启事件调度器:
SET GLOBAL event_scheduler = ON;
3、以下是一个删除your_table
表中7天前数据的示例:
CREATE EVENT IF NOT EXISTS event_cleanup_data ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP DO DELETE FROM your_table WHERE your_date_column < DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY);
4、启动事件
ALTER EVENT event_cleanup_data ON
COMPLETION PRESERVE ENABLE;
确保替换your_table
和your_date_column
为你实际的表名和列名。这样,你就设置了一个定期清理数据的任务
5、查看事件
SHOW EVENTS;
二、实例一:删除apb项目中系统日志表中指定90天的数据
CREATE EVENT IF NOT EXISTS event_cleanup_abplog ON SCHEDULE EVERY 1 DAY STARTS '2024-08-14 23:00:00' DO BEGIN DELETE FROM abpauditlogs WHERE executiontime < DATE_SUB(CURRENT_DATE, INTERVAL 90 DAY); DELETE FROM abpauditlogactions WHERE executiontime < DATE_SUB(CURRENT_DATE, INTERVAL 90 DAY); DELETE FROM abpentitychanges WHERE changetime < DATE_SUB(CURRENT_DATE, INTERVAL 90 DAY); END;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2022-08-14 ABP vNext系列文章03---依赖注入
2018-08-14 jqGrid 将行变成超连接时浏览器解析超连接错误
2017-08-14 NHibernte教程(10)--关联查询
2017-08-14 NHibernate教程(9)一1对n关联映射
2017-08-14 NHibernate教程(8)--巧用组件
2017-08-14 NHibernate教程(7)--并发控制
2017-08-14 NHibernate学习教程(6)--事务Transactions