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

MySQL에서 지정된 시간 간격 후에 실행되는 일회성 이벤트 생성하는 방법

일회성(one-time) 이벤트란 특정 스케줄에 따라 단 한 번만 실행되는 이벤트를 의미합니다. MySQL에서는 CREATE EVENT 문과 함께 AT CURRENT_TIMESTAMP + INTERVAL 구문을 사용하여 현재 시점으로부터 지정된 시간 간격이 지난 후에 실행되는 일회성 이벤트를 손쉽게 생성할 수 있습니다.

일회성 이벤트 생성 예제

다음 예제는 현재 시각으로부터 1분 후에 자동으로 실행되는 이벤트를 생성하는 코드입니다.

mysql> CREATE EVENT testing_event5 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE ON COMPLETION PRESERVE DO INSERT INTO event_message(message,generated_at) Values('Hi',NOW());
Query OK, 0 rows affected (0.06 sec)

mysql> Select * from event_message;
+----+---------+---------------------+
| ID | MESSAGE | Generated_at        |
+----+---------+---------------------+
| 1  | Hello   | 2017-11-22 17:05:22 |
| 2  | Hi      | 2017-11-22 17:08:37 |
+----+---------+---------------------+
2 rows in set (0.00 sec)

구문 설명

  • ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE: 이벤트가 현재 시각으로부터 정확히 1분 뒤에 한 번 실행되도록 스케줄을 지정합니다.
  • ON COMPLETION PRESERVE: 이벤트 실행이 완료된 후에도 해당 이벤트를 삭제하지 않고 유지합니다. 이 옵션을 생략하면 기본적으로 이벤트 실행 후 자동으로 삭제됩니다.
  • DO INSERT INTO ...: 이벤트가 실행될 때 수행할 실제 작업을 정의합니다. 여기서는 event_message 테이블에 메시지와 현재 시각을 삽입합니다.

위 결과 집합을 보면 'Hi'라는 메시지가 이벤트 생성 시점으로부터 약 1분 후의 시각(17:08:37)에 저장된 것을 확인할 수 있습니다. 이처럼 일회성 이벤트를 활용하면 특정 시점에 데이터 백업, 알림 기록 삽입 등 원하는 작업을 자동화할 수 있습니다.