修改MySQL事件
时间:2019-11-20 08:52:29 来源:igfitidea点击:
简介:在本教程中,您将学习如何使用MySQL ALTER EVENT修改现有的MySQL Event,包括修改事件的时间表,启用或禁用事件以及重命名事件。
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 classicmodels;
MySQL ALTER EVENT示例
让我们创建一个示例事件来演示ALTER EVENT语句的各种功能。
以下语句创建一个事件,该事件每分钟将新行插入到message表中。
CREATE EVENT test_event_04 ON SCHEDULE EVERY 1 MINUTE DO INSERT INTO messages(message,created_at) VALUES('Test ALTER EVENT statement',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分钟,然后再次检查邮件表:
SELECT * FROM messages;
禁用活动
要禁用该事件,请使用以下语句:
ALTER EVENT test_event_04 DISABLE;
您可以使用SHOW EVENTS语句检查事件的状态,如下所示:
SHOW EVENTS FROM classicmodels;
启用活动
要启用禁用的事件,请在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 classicmodels.test_event_05 RENAME TO newdb.test_event_05
假定您的MySQL数据库服务器中有newdb数据库可用。
在本教程中,我们向您展示了如何使用ALTER EVENT语句更改MySQL事件的各种属性。