Với sự trợ giúp của câu lệnh ALTER EVENT, chúng ta có thể sửa đổi một sự kiện MySQL hiện có. Chúng tôi có thể thay đổi các thuộc tính khác nhau của một sự kiện. ALTER EVENT có cú pháp sau -
ALTER EVENT event_name ON SCHEDULE schedule ON COMPLETION [NOT] PRESERVE RENAME TO new_event_name ENABLE | DISABLE DO event_body
Để hiểu nó, chúng tôi minh họa ví dụ dưới đây -
Ví dụ
Giả sử chúng ta có một sự kiện như sau -
mysql> Create event hello ON SCHEDULE EVERY 1 Minute DO INSERT INTO event_messages(message, generated_at) Values ('Alter event testing', NOW()); Query OK, 0 rows affected (0.00 sec) mysql> select * from event_messages; +----+---------------------+---------------------+ | ID | MESSAGE | Generated_at | +----+---------------------+---------------------+ | 1 | Without Preserve | 2017-11-22 20:32:13 | | 2 | With Preserve | 2017-11-22 20:35:12 | | 3 | Alter event testing | 2017-11-22 21:08:37 | +----+---------------------+---------------------+ 3 rows in set (0.00 sec) mysql> ALTER EVENT hello ON SCHEDULE EVERY 2 MINUTE; Query OK, 0 rows affected (0.00 sec)
Truy vấn trên sẽ thay đổi lịch trình của sự kiện từ 1 phút thành 2 phút. Và truy vấn bên dưới sẽ thay đổi nội dung của sự kiện.
mysql> ALTER EVENT hello DO INSERT INTO event_messages(message,generated_at) VALUES('ALTERED',NOW()); Query OK, 0 rows affected (0.00 sec) mysql> select * from event_messages; +----+---------------------+---------------------+ | ID | MESSAGE | Generated_at | +----+---------------------+---------------------+ | 1 | Without Preserve | 2017-11-22 20:32:13 | | 2 | With Preserve | 2017-11-22 20:35:12 | | 3 | Alter event testing | 2017-11-22 21:08:37 | | 4 | Alter event testing | 2017-11-22 21:09:15 | | 5 | ALTERED | 2017-11-22 21:11:15 | +----+---------------------+---------------------+ 5 rows in set (0.00 sec)
Tập hợp kết quả trên cho thấy rằng chúng tôi nhận được thông báo đã thay đổi sau 2 phút.