MySQL创建定时任务实例(每天凌晨1点、每小时、每分钟、某一时间点)的完整攻略如下:
步骤1:创建MySQL事件调度器
MySQL事件调度器是MySQL创建定时任务的核心。我们可以通过以下语句打开MySQL事件调度器:
SET GLOBAL event_scheduler = ON;
步骤2:创建MySQL事件
创建MySQL事件前,我们先来了解一下MySQL的事件类型:
- 每隔固定时间间隔执行事件
- 每天、每周、每月的固定时间执行事件
- 当系统启动时,只执行一次事件
下面是几个MySQL事件的示例:
每天凌晨1点执行的事件
定时清理某张表的数据:
CREATE EVENT clean_table
ON SCHEDULE EVERY 1 DAY STARTS '2022-01-01 01:00:00'
DO
DELETE FROM table_name WHERE created_time < DATE_SUB(NOW(), INTERVAL 30 DAY);
每小时执行一次的事件
定时从某个表中取出一条随机的数据:
CREATE EVENT get_random_data
ON SCHEDULE EVERY 1 HOUR
DO
SELECT * FROM table_name ORDER BY RAND() LIMIT 1;
每分钟执行一次的事件
定时更新某条数据的状态:
CREATE EVENT update_data_status
ON SCHEDULE EVERY 1 MINUTE
DO
UPDATE table_name SET status = 1 WHERE id = 100;
某一时间点执行的事件
在特定的时间点执行一次事件:
CREATE EVENT do_something
ON SCHEDULE AT '2022-01-01 10:00:00'
DO
INSERT INTO table_name (id, name, created_time) VALUES (100, 'test', NOW());
通过以上示例,可知MySQL事件的创建可以使用CREATE EVENT语句,并通过ON SCHEDULE子句来指定事件执行的时间,详见语句解析:
- EVERY表示事件的重复时间,可以使用YEAR、MONTH、DAY、HOUR、MINUTE、SECOND等单位;
- STARTS表示事件的启动时间,使用日期时间格式;
- AT表示事件只执行一次的时间点,使用日期时间格式。
以上是关于MySQL创建定时任务实例的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL创建定时任务实例(每天凌晨1点、每小时、每分钟、某一时间点) - Python技术站