MySQL允许您更改现有事件的各种属性。 要更改现有事件,请使用ALTER EVENT
语句,如下所示:
ALTER EVENT event_nameON SCHEDULE scheduleON 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_04ON SCHEDULE EVERY 1 MINUTEDO INSERT INTO messages(message,created_at) VALUES('测试ALTER EVENT语句',NOW());
更改计划
要使事件每2分钟运行一次,请使用以下语句:
ALTER EVENT test_event_04ON SCHEDULE EVERY 2 MINUTE;
更改事件主体
您还可以通过指定新逻辑来更改事件的主体,如下所示:
ALTER EVENT test_event_04DO INSERT INTO messages(message,created_at) VALUES('Message from event',NOW());
您可以先等待2分钟,然后再次查看messages
表:
SELECT * FROM messages;
禁用事件
要禁用事件,请使用以下语句:
ALTER EVENT test_event_04DISABLE;
您可以使用SHOW EVENTS
语句来检查事件的状态,如下所示:
SHOW EVENTS FROM studymysql;
启用事件
要启用已禁用的事件,请在ALTER EVENT
语句之后使用ENABLE
关键字,如下所示:
ALTER EVENT test_event_04ENABLE;
重命名事件
MySQL中不为提供RENAME EVENT
语句。不过可以使用ALTER EVENT
来重命名现有事件,如下所示:
ALTER EVENT test_event_04RENAME TO test_event_05;
将事件移动到其他数据库
可以使用RENAME TO
子句将事件从数据库移动到另一个数据库,如下所示:
ALTER EVENT studmysql.test_event_05RENAME TO newdb.test_event_05
假设 newdb
数据库数据库在MySQL数据库服务器中可用。
在本教程中,我们向您展示了如何使用ALTER EVENT
语句来修改MySQL事件的各种属性。
转载自:http://www.studymysql.com/mysql/triggers-modifying-mysql-events.html