Database & Data/MySQL
MySQL EVENT 간단 이해하기
김잠봉
2023. 7. 3. 10:12
728x90
예를 들어, 매일 밤 12시에 특정 테이블의 데이터를 정리하도록 설정할 수 있다.
다음은 MySQL 이벤트를 생성하고 사용하는 기본적인 방법이다.
1단계: Event Scheduler를 활성화 한다.
이벤트 스케줄러는 MySQL 서버에 기본적으로 내장된 구성 요소로서, 이벤트를 실행하는 데 사용된다. 다음 명령어로 이벤트 스케줄러를 활성화 할 수 있다.
SET GLOBAL event_scheduler = ON;
2단계: Event 생성
다음은 매일 밤 12시에 'old_data' 테이블에서 30일 이전의 데이터를 삭제하는 이벤트를 생성하는 예:
CREATE EVENT ev_daily_delete
ON SCHEDULE EVERY 1 DAY
STARTS (TIMESTAMP(CURRENT_DATE) + INTERVAL 1 DAY)
DO
DELETE FROM old_data WHERE created_at < DATE(NOW() - INTERVAL 30 DAY);
이 이벤트의 세부 사항은 다음과 같다:
ev_daily_delete: 이벤트의 이름이다.
ON SCHEDULE EVERY 1 DAY: 이 이벤트가 매일 실행되도록 스케줄을 설정한다.
STARTS (TIMESTAMP(CURRENT_DATE) + INTERVAL 1 DAY): 이 이벤트가 처음으로 실행되는 시간을 설정한다. 이 경우에는 다음 날 12시(정오)
DO DELETE FROM old_data WHERE created_at < DATE(NOW() - INTERVAL 30 DAY): 이 이벤트가 실행될 때 수행되는 작업이다. 여기서는 'old_data' 테이블에서 30일 이전의 데이터를 삭제한다.
3단계: 이벤트 확인
다음 SQL 명령을 사용하여 현재 데이터베이스의 모든 이벤트를 확인할 수 있다.
SHOW EVENTS;
SELECT * FROM information_schema.EVENTS;
- 출력되는 표중에 LAST_EXECUTED 는 마지막 이벤트가 실행 된 시간을 이야기한다.
4단계: 이벤트 수정
이벤트를 수정하려면 'ALTER EVENT' 명령을 사용한다. 예를 들어, 위에서 생성한 'ev_daily_delete' 이벤트를 매일 아침 1시에 실행되도록 변경할 수 있다.
ALTER EVENT ev_daily_delete
ON SCHEDULE EVERY 1 DAY
STARTS (TIMESTAMP(CURRENT_DATE) + INTERVAL 1 DAY + INTERVAL 1 HOUR);
5단계: 이벤트 삭제
이벤트를 삭제하려면 'DROP EVENT' 명령을 사용한다.
DROP EVENT IF EXISTS ev_daily_delete;
728x90
SMALL