스케줄러 사용 전 작업할 데이터베이스 사용
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';