如何启动 MySQL 事件调度程序?

简介

MySQL事件调度是MySQL数据库提供的一种处理定期执行任务的方法。利用MySQL的事件调度程序可以在特定时间执行某一个SQL语句,并定期重复执行。对于需要进行定期处理的业务场景来说,MySQL事件调度是非常实用的功能。

开启事件调度

在MySQL中,事件调度可以通过设置事件调度器开启,通过以下命令可以查看MySQL的事件调度器是否已经开启。

SHOW PROCESSLIST;

如果MySQL的事件调度器没有开启,可以通过以下命令进行开启。

SET GLOBAL event_scheduler = ON;

执行以上命令后,MySQL的事件调度器就会被开启。

创建事件

语法

创建MySQL事件的语法如下所示:

CREATE EVENT event_name

ON SCHEDULE schedule

[ON COMPLETION [NOT] PRESERVE]

[ENABLE | DISABLE | DISABLE ON SLAVE]

DO sql_statements;

其中,event_name指定事件的名称;schedule指定事件的执行时间和执行频率;ON COMPLETION [NOT] PRESERVE指定事件执行完成后是否保留事件;ENABLE | DISABLE | DISABLE ON SLAVE指定事件的状态,启用、禁用或仅禁用从库;sql_statements指定事件要执行的SQL语句。

实例

以下示例创建了一个名为demo_event的事件,事件将在每天的上午10:00执行,执行的SQL语句为SELECT * FROM demo_table;

CREATE EVENT demo_event

ON SCHEDULE EVERY 1 DAY STARTS '2022-11-01 10:00:00'

DO SELECT * FROM demo_table;

上面的例子说明了,我们可以通过ON SCHEDULE指定事件的执行时间和执行频率。在上面的例子中,我们指定事件的执行频率是EVERY 1 DAY,表示事件将每天执行一次。并通过STARTS指定事件开始执行的时间。

查看事件

在创建了MySQL的事件后,我们需要查看事件是否被正确地创建。可以使用以下命令进行查看。

SHOW EVENTS;

以上命令将显示MySQL中的所有事件。

修改事件

可以使用以下命令修改事件的执行时间和执行频率。

ALTER EVENT event_name

ON SCHEDULE schedule;

例如,我们可以使用以下命令将事件的执行频率改为每周一次。

ALTER EVENT demo_event

ON SCHEDULE EVERY 1 WEEK STARTS '2022-11-01 10:00:00';

禁用事件

如果需要临时停止某个事件,可以使用以下命令禁用事件。

ALTER EVENT event_name

DISABLE;

例如,我们可以使用以下命令禁用名为demo_event的事件。

ALTER EVENT demo_event

DISABLE;

启用事件

如果需要重新启用某个禁用的事件,可以使用以下命令启用事件。

ALTER EVENT event_name

ENABLE;

例如,我们可以使用以下命令启用名为demo_event的事件。

ALTER EVENT demo_event

ENABLE;

总结

事件调度程序是MySQL数据库提供的一种处理定期执行任务的方法,使用起来非常方便。我们可以通过设置事件调度器开启MySQL的事件调度器;通过创建事件指定事件的执行时间和执行频率;通过查看事件确认事件是否被正确创建;通过禁用事件临时停止某个事件;通过启用事件重新启用某个禁用的事件。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签