使用MySQL自带的定时器可以很方便地实现SQL语句的定时执行,无需使用第三方定时任务软件,下面是详细的攻略:
1. 启用定时器
要使用MySQL自带的定时器,需要先启用定时器功能。在MySQL的配置文件my.cnf中,打开以下配置:
[mysqld]
event_scheduler = ON
重启MySQL服务,或者执行以下语句,使配置修改生效:
SET GLOBAL event_scheduler = ON;
2. 创建定时器
MySQL定时器使用EVENT来表示,可以通过CREATE EVENT语句创建自己的定时器。以下是CREATE EVENT语句的语法:
CREATE EVENT event_name ON SCHEDULE schedule
DO sql_statement;
其中,event_name
是事件名称,schedule
是事件调度,sql_statement
是要执行的SQL语句。
3. 设置事件调度
事件调度需要设置在SCHEDULE关键字之后,可以使用以下参数:
- EVERY n [HOUR|MINUTE|SECOND]:表示每隔n小时/分钟/秒执行一次;
- INTERVAL n [HOUR|MINUTE|SECOND]:表示每隔n小时/分钟/秒执行一次;
- AT TIME 'hh:mm:ss':表示在每天的某个时间点执行。
以下是一些示例:
- 每天0点执行SQL语句
CREATE EVENT everyday_event
ON SCHEDULE EVERY 1 DAY STARTS '2021-12-01 00:00:00'
DO
-- 要执行的SQL语句
解释:以上的定时任务表示新建一个名为everyday_event
的事件,每天00:00时执行SQL语句。
- 每隔30分钟执行SQL语句
CREATE EVENT every_thirty_minutes_event
ON SCHEDULE EVERY 30 MINUTE STARTS CURRENT_TIMESTAMP
DO
-- 要执行的SQL语句
解释:以上的定时任务表示新建一个名为every_thirty_minutes_event
的事件,每隔30分钟从当前时间开始执行SQL语句。
4. 查看定时器列表
要查看已经创建的定时器列表,可以使用以下语句:
SHOW EVENTS;
5. 修改/删除定时器
要修改一个已经创建的定时器,可以使用ALTER EVENT语句。要删除一个定时器,可以使用DROP EVENT语句。以下是这些语句的语法:
-- 修改定时器
ALTER EVENT event_name
ON SCHEDULE schedule
DO sql_statement;
-- 删除定时器
DROP EVENT event_name;
以上就是使用MySQL自带的定时器定时执行SQL语句的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何用mysql自带的定时器定时执行sql(每天0点执行与间隔分/时执行) - Python技术站