MySQL EVENT 간단 이해하기

2023. 7. 3. 10:12·Database & Data/MySQL
728x90
SMALL

예를 들어, 매일 밤 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
'Database & Data/MySQL' 카테고리의 다른 글
  • MySQL 기본 PATH 설정하기
  • MySQL 랭킹 함수 모음
  • MySQL ON DUPLICATE KEY UPDATE 란?
  • MySQL 파티셔닝(Partitioning)
동석해요
동석해요
공부하고 싶은게 많은, 사소한 IT 지식들 공유
    250x250
  • 동석해요
    개발로 자기계발
    동석해요
  • 전체
    오늘
    어제
    • 분류 전체보기 (226)
      • Develop (126)
        • 기초지식 (12)
        • FastAPI (102)
        • Django (11)
      • Database & Data (62)
        • 기초지식 (16)
        • MySQL (29)
        • PostgreSQL (8)
        • 데이터 분석 (9)
      • 인공지능 (11)
        • PyTorch (9)
      • Cloud (8)
        • AWS (4)
        • GCP (2)
      • 버그처리 (14)
      • 회고 & 일상 (5)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
동석해요
MySQL EVENT 간단 이해하기
상단으로

티스토리툴바