Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

기존 MySQL 이벤트를 어떻게 수정할 수 있습니까?


ALTER 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

이를 이해하기 위해 다음과 같은 예를 보여줍니다. -

예시

다음과 같은 이벤트가 있다고 가정합니다 -

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)

위 쿼리는 이벤트 일정을 1분에서 2분으로 변경합니다. 그리고 아래 쿼리는 이벤트의 본문을 변경합니다.

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)

위의 결과 집합은 2분 후에 변경된 메시지를 수신했음을 보여줍니다.