관리 메뉴

JeongMin-dev

[Mysql] 이벤트 스케줄러 사용 본문

Sql/Mysql

[Mysql] 이벤트 스케줄러 사용

클딧 2023. 6. 30. 15:47

스케줄러 사용 전 작업할 데이터베이스 사용

USE [데이터베이스];

 

스케줄러

이벤트 스케줄러 ON/OFF 확인

SHOW VARIABLES LIKE 'event%'

이벤트 스케줄러 ON

SET GLOBAL event_scheduler = ON;
  • 이벤트 스케줄러 실행 쿼리.

이벤트 스케줄러 OFF

SET GLOBAL event_scheduler = OFF;
  • 이벤트 스케줄러 종료 쿼리.

 

이벤트

이벤트 조회

SHOW EVENTS FROM DB명;

이벤트 등록

CREATE EVENT delete_data_event
ON SCHEDULE EVERY 5 SECOND
DO
  DELETE t1
  FROM andy_logen.work_code_delivery_uni t1
  JOIN (
    SELECT id
    FROM andy_logen.work_code_delivery_uni
    WHERE scandate BETWEEN '2023-01-01' AND '2023-03-11'
    LIMIT 10000
  ) t2 ON t1.id = t2.id;
  •  설정한 날짜 5초마다 10000건씩 삭제하는 이벤트
CREATE EVENT delete_data_uni
ON SCHEDULE EVERY 1 DAY
STARTS '2023-06-15 02:00:00'
DO
	DELETE FROM andy_logen.work_code_delivery_uni WHERE scandate < DATE_SUB(NOW(), INTERVAL 3 MONTH);
  • 3개월 이전 데이터 하루마다 한 번에 삭제하는 이벤트

이벤트 수정

ALTER EVENT delete_data_uni
ON SCHEDULE EVERY 1 DAY
STARTS '2023-06-15 02:00:00'
DO
	DELETE FROM andy_logen.work_code_delivery_uni WHERE scandate < DATE_SUB(NOW(), INTERVAL 3 MONTH);
  • 첫줄의 CREATE 부분을 ALTER로 바꾼 후 수정하고 싶은 쿼리로 바꾼다.

이벤트 삭제

DELETE FROM mysql.event
    WHERE db = 'write_db_name'
      AND name = 'write_event_name';

'Sql > Mysql' 카테고리의 다른 글

[Mysql] AUTO_INCREMENT 값 초기화  (0) 2023.06.30