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
'Database & Data > MySQL' 카테고리의 다른 글
MySQL 기본 PATH 설정하기 (0) | 2023.07.06 |
---|---|
MySQL 랭킹 함수 모음 (0) | 2023.07.03 |
MySQL ON DUPLICATE KEY UPDATE 란? (0) | 2023.06.30 |
MySQL 파티셔닝(Partitioning) (0) | 2023.06.28 |
MySQL 스크립트 실행하는 4가지 방법 소개 (0) | 2023.06.25 |