mysql event schedule

mysql event schedule

spring에서는 quartz, spring scheduler 의 스케쥴러가 있듯이

oracle 에서는 job, mysql 에서는 event schedule 로 스케쥴링을 할 수 있다.

이번 시간에는 mysql의 이벤트 스케쥴러에 대해서 작성하고자 한다.

1. 사전 작업.

event schdule 을 사용하기 위해서는.

1.1 mysql에 접속하여 event schedule이 정상 동작 중인지 체크한다.

show variables like 'event%'; 입력

위 이미지는 value가 ON 으로 나와 있지만 별다른 세팅을 하지 않은 경우 OFF 로 나와있을 것

1.2 my.cnf 파일을 찾아서

event-scheduler = 1 또는

event-scheduler = ON 와 같이 입력하고 mysql을 재시작 한다.

2. event 작성 기본 SQL 을 통하여 이벤트 스케쥴러 생성

2.1 기본 SQL 문은 다음과 같다.

/* SQL */

CREATE EVENT [IF NOT EXISTS] 이벤트명

ON SCHEDULE 스케줄

[ON COMPLETION [NOT] PRESERVE]

[ENABLE | DISABLE]

[COMMENT '주석']

DO [BEGIN] 실행할 sql문; [실행할 sql문];

[END]

2.2 세부 설정으로는

① 시간설정 ( 매일)

ex) 매일 : EVERY 1 DAY,

10분마다 : EVERY 10 MINUTE,

② 시간설정(특정 시간)

ex) 한번만 : AT '2021-12-20 13:40:11' -- 2021-12-20 13:40:11 시간에 1번 실행

3. 적용 예시

create definer = root@`%` event UPDATE_LOGIN_TYPE on schedule every '1' MINUTE starts '2021-12-05 10:10:00' on completion preserve enable comment 'UPDATE_LOGIN_TYPE' do BEGIN UPDATE test SET LOGIN_type = 20 WHERE 1=1 AND LOGIN_type = 10 AND UNIX_TIMESTAMP(UPDATED_AT) < UNIX_TIMESTAMP(NOW()); END;

from http://7hong.tistory.com/20 by ccl(A) rewrite - 2021-12-20 16:01:24