MySQL定时调度使用的是事件,通过定时触发事件来执行SQL语句。事件是一类特殊的数据库对象,需要开启事件调度器才能使用。如果你的MySQL版本支持事件调度器,可以通过以下步骤来创建定时调度执行SQL语句。
-- 开启事件调度器 SET GLOBAL event_scheduler = ON;
首先要开启事件调度器,才能正确运行定时任务。使用SET GLOBAL语句将event_scheduler参数设置为ON即可。
-- 创建事件 CREATE EVENT event_name ON SCHEDULE schedule DO sql_statement;
其中,event_name为事件名称,schedule为定时触发的规则,sql_statement为要执行的SQL语句。schedule可以使用以下参数:
- AT timestamp
- EVERY interval
- STARTS timestamp ENDS timestamp
例如,要每天凌晨3点执行一次备份操作:
CREATE EVENT backup_event ON SCHEDULE EVERY 1 DAY STARTS '2022-01-01 03:00:00' DO BEGIN -- 执行备份操作 ... END;
这样,定时任务就创建完成了。可以通过以下语句查看已经创建的事件:
SHOW EVENTS;
如果需要修改或删除事件,可以使用以下语句:
-- 修改事件 ALTER EVENT event_name ON SCHEDULE schedule DO sql_statement; -- 删除事件 DROP EVENT event_name;
MySQL定时调度可以大大提高开发效率,实现任务自动化。但需要注意的是,事件调度器会占用系统资源,如果不需要使用可以关闭。
-- 关闭事件调度器 SET GLOBAL event_scheduler = OFF;