Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 즉시 실행되는 일회성 이벤트 생성하는 방법

일회성(one-time) 이벤트란 특정 일정 시점에 단 한 번만 실행되는 이벤트를 의미합니다. MySQL에서는 CREATE EVENT 문과 ON SCHEDULE AT 절을 조합하여 이러한 이벤트를 손쉽게 만들 수 있습니다.

아래 예제는 현재 시각(CURRENT_TIMESTAMP)에 즉시 실행되는 일회성 이벤트를 생성하는 전체 과정을 보여줍니다.

예제

먼저 이벤트 실행 결과를 저장할 테이블을 생성합니다.

mysql> CREATE TABLE event_message(ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, MESSAGE VARCHAR(255) NOT NULL, Generated_at DATETIME NOT NULL);
Query OK, 0 rows affected (0.61 sec)

그다음 CURRENT_TIMESTAMP를 기준으로 하여, 이벤트가 생성되는 즉시 실행되도록 이벤트를 만듭니다.

mysql> CREATE EVENT testing_event ON SCHEDULE AT CURRENT_TIMESTAMP DO INSERT INTO event_message(message, generated_at) VALUES('Hello', NOW());
Query OK, 0 rows affected (0.00 sec)

이벤트가 실행된 직후 테이블을 조회하면 다음과 같이 데이터가 자동으로 삽입되어 있음을 확인할 수 있습니다.

mysql> SELECT * FROM event_message;
+----+---------+---------------------+
| ID | MESSAGE | Generated_at        |
+----+---------+---------------------+
| 1  | Hello   | 2017-11-22 17:05:22 |
+----+---------+---------------------+
1 row in set (0.00 sec)

위 결과에서 볼 수 있듯이, 이벤트가 생성되는 순간(현재 시각) 자동으로 한 번 실행되어 event_message 테이블에 'Hello'라는 메시지와 현재 시간이 기록되었습니다.

참고로 일회성 이벤트는 실행이 완료된 후에도 자동으로 삭제되지 않습니다. 따라서 더 이상 필요하지 않은 이벤트는 DROP EVENT 문을 사용하여 직접 제거하는 것이 좋습니다.