1. event scheduler 상태 확인
SHOW VARIABLES LIKE 'event%';
2. event scheduler ON/OFF
SET GLOBAL event_scheduler = ON;
SET GLOBAL event_scheduler = OFF;
3. event scheduler 생성
CREATE
[DEFINER = user]
EVENT
[IF NOT EXISTS]
event_name
ON SCHEDULE schedule # 해당 명령을 수행하거나 반복할 시간 및 기간
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'string'] # 해당 이벤트에 대한 설명
DO event_body; # 수행할 명령
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}
- 특정 시간에 명령을 1회만 실행하도록 하려면 AT timestamp 사용.
- ex. ON SCHEDULE AT '2020-08-28 00:00:00'
- 명령을 반복 실행하려면 EVERY interval을 사용
- ex. ON SCHEDULE EVERY 1 DAY
- STARTS, ENDS를 사용하여 시작일과 종료일을 지정할 수 있다.
- ex. ON SCHEDULE EVERY 1 DAT STARTS '2018-01-01 00:00:00' ENDS '2020-01-01 00:00:00'
- ON COMPLETE NOT PRESERVE ENABLE
- 해당 설정은 이벤트를 수행 후 삭제 여부를 지정한다.
- 이벤트 수행 후, 이벤트를 삭제하지 않는다면 ON COMPLETION PRESERVE ENABLE
4. event 목록 확인
SELECT * FROM information_schema.events;
5. 이벤트 삭제
DROP EVENT 이벤트이름;
6. 이벤트 수정하기
ALTER
[DEFINER = user]
EVENT event_name
[ON SCHEDULE schedule]
[ON COMPLETION [NOT] PRESERVE]
[RENAME TO new_event_name]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'string']
[DO event_body]
참조 URL
1. https://miniweb4u.tistory.com/91
2. https://web-inf.tistory.com/18
3. https://dev.mysql.com/doc/refman/8.0/en/alter-event.html
4. https://dev.mysql.com/doc/refman/8.0/en/create-event.html
5. https://dev.mysql.com/doc/refman/8.0/en/alter-event.html
'Database' 카테고리의 다른 글
[MYSQL ] DDL (0) | 2020.08.29 |
---|---|
Delimiter 란? (0) | 2020.08.28 |
SQL 문 (0) | 2020.07.09 |
SQL(Structured Query Language)이란? (0) | 2020.07.09 |
AUTO_INCREMENT 초기화 방법 (0) | 2020.06.30 |