on
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