Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีแก้ไข (Modify) MySQL Event ที่มีอยู่


ใช้ ALTER EVENT เปลี่ยน attribute ต่างๆ ไวยากรณ์:

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

ตัวอย่าง

สร้าง event hello รันทุก 1 นาที:

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)

เปลี่ยน schedule เป็นทุก 2 นาที แล้วเปลี่ยน body:

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)

ข้อความใหม่ 'ALTERED' ถูก INSERT หลังจากเปลี่ยน schedule เป็น 2 นาที