DB(SQL)/mysql|maria
[Mariadb] event scheduler 설정하기
24시간초보
2022. 9. 16. 16:43
반응형
이벤트 스케줄러 설정 확인
SHOW VARIABLES WHERE VARIABLE_NAME = 'event_scheduler';
이벤트 스케줄러 사용 ON 설정 (임시)
SET GLOBAL event_scheduler = ON;
데이터베이스가 재시작되거나 하면 설정값이 날라간다.
이벤트 스케줄러 사용 ON 설정 (영구)
mraidb 설정 파일 (버전 및 install 환경에 따라 달라질 수 있다.
# mraidb 설정 파일 변경(버전 및 install 환경에 따라 달라질 수 있다.)
vim /etc/mysql/mariadb.conf.d/50-server.cnf
# [50-server.conf]
[mariadb]
# event_scheduler 속성 추가 또는 ON
event_scheduler = on
# mariadb 재시작
service mariadb restart
이벤트 생성
syntax
CREATE [OR REPLACE]
[DEFINER = { user | CURRENT_USER | role | CURRENT_ROLE }]
EVENT
[IF NOT EXISTS]
event_name -- event_name은 최대 길이가 64자인 유효한 MariaDB 식별자
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO sql_statement;
schedule:
AT timestamp [+ INTERVAL interval] ...
| EVERY interval
[STARTS timestamp [+ INTERVAL interval] ...]
[ENDS timestamp [+ INTERVAL interval] ...]
interval (반복주기) :
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
일회성 이벤트 (feat. AT)
CREATE EVENT myevent -- myevent라는 이벤트를 생성합니다.
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR -- SQL 문을 실행하여 한 번 ( 생성 후 1시간 ) 실행
DO
UPDATE myschema . mytable SET mycol = mycol + 1 ; -- myschema.mytable 테이블의 mycol 열 값을 1씩 증가
반복성 이벤트 (feat. EVERY)
CREATE EVENT example -- example 이벤트 생성
ON SCHEDULE EVERY 1 HOUR -- 1시간마다 반복
STARTS CURRENT_TIMESTAMP + INTERVAL 1 MONTH -- 현재 시간으로 부터 1달 후 부터 시작
ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH + INTERVAL 1 WEEK -- 현재 시간으로 부터 1달 후 + 일주일 후 때 종료
DO insert into test values (1); -- DO 실행할 쿼리
자세한 사항
https://mariadb.com/kb/en/create-event
CREATE EVENT
Create and schedule a new event.
mariadb.com
https://mariadb.com/kb/en/event-scheduler
Event Scheduler
mariadb.com
이벤트 목록 확인
SHOW EVENTS;
이벤트 마지막으로 실행된 시점 확인
SELECT last_executed FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'my_delete_event';
참고
https://plein-de-verite.tistory.com/217
[MariaDB] EVENT 스케줄러 사용하여 쿼리 자동 반복 실행하기
MariaDB 테이블의 특정 필드값에 대해 어떤 조건이 충족하는 경우 주기적으로 삭제 처리하는 작업을 위하여 자동으로, 그리고 주기적으로 쿼리를 실행하는 방법이 필요하여 EVENT Scheduler 기능을 이
plein-de-verite.tistory.com
반응형