修改MySQL事件

时间:2023-03-09 19:08:27
修改MySQL事件

MySQL允许您更改现有事件的各种属性。 要更改现有事件,请使用ALTER EVENT语句,如下所示:

ALTER EVENT event_name
ON SCHEDULE schedule
ON COMPLETION [NOT] PRESERVE
RENAME TO new_event_name
ENABLE | DISABLE
DO
event_body

请注意,ALTER EVENT语句仅应用于现有事件。如果尝试修改不存在的事件,MySQL将发出一个错误消息,因此,应该先使用SHOW EVENTS语句来检查事件是否存在,然后再更改它。

SHOW EVENTS FROM studymysql;

修改事件(ALTER EVENT)示例

让我们创建一个示例事件来演示使用ALTAR EVENT语句的各种功能。
以下语句创建一个事件,并每分钟向messages表中插入一条新记录。

CREATE EVENT test_event_04
ON SCHEDULE EVERY 1 MINUTE
DO
INSERT INTO messages(message,created_at)
VALUES('测试ALTER EVENT语句',NOW());

更改计划

要使事件每2分钟运行一次,请使用以下语句:

ALTER EVENT test_event_04
ON SCHEDULE EVERY 2 MINUTE;

更改事件主体

您还可以通过指定新逻辑来更改事件的主体,如下所示:

ALTER EVENT test_event_04
DO
INSERT INTO messages(message,created_at)
VALUES('Message from event',NOW());

您可以先等待2分钟,然后再次查看messages表:

SELECT * FROM messages;

禁用事件

要禁用事件,请使用以下语句:

ALTER EVENT test_event_04
DISABLE;

您可以使用SHOW EVENTS语句来检查事件的状态,如下所示:

SHOW EVENTS FROM studymysql;

启用事件

要启用已禁用的事件,请在ALTER EVENT语句之后使用ENABLE关键字,如下所示:

ALTER EVENT test_event_04
ENABLE;

重命名事件

MySQL中不为提供RENAME EVENT语句。不过可以使用ALTER EVENT来重命名现有事件,如下所示:

ALTER EVENT test_event_04
RENAME TO test_event_05;

将事件移动到其他数据库

可以使用RENAME TO子句将事件从数据库移动到另一个数据库,如下所示:

ALTER EVENT studmysql.test_event_05
RENAME TO newdb.test_event_05

假设 newdb 数据库数据库在MySQL数据库服务器中可用。

在本教程中,我们向您展示了如何使用ALTER EVENT语句来修改MySQL事件的各种属性。


转载自:http://www.studymysql.com/mysql/triggers-modifying-mysql-events.html