mysql 정시 작업 의 실현 과 사용 방법 예시

3104 단어 mysql정시 임무
본 논문 의 사례 는 my sql 정시 임무 의 실현 과 사용 방법 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
my sql 5.1.6 이벤트 스케줄 러(Event Scheduler)를 추가 하여 정시 작업(정시 삭제 기록,정시 데이터 통계)을 하여 이전 시스템 의 계획 작업 을 대체 할 수 있 습 니 다.my sql 이벤트 스케줄 러 는 초당 하나의 작업 을 수행 할 수 있 습 니 다.
이벤트 스케줄 러 와 트리거 의 차이 점:이벤트 스케줄 러 는 특정한 시간 주기 에 따라 특정한 작업 을 수행 합 니 다.트리거 는 특정한 표 에 의 한 이벤트 에 의 해 작 동 됩 니 다.
1.오픈 여부 확인

> show variables like 'event_scheduler';

2.이벤트 스케줄 러 켜 기

set global event_scheduler = on;

 이 설정 은 my sql 이 다시 시작 되면 자동 으로 닫 힙 니 다.계속 열 려 면 my.ini 에서 다음 과 같이 설정 해 야 합 니 다.

event_scheduler = on

3.이벤트 문법 만 들 기

CREATE EVENT [IF NOT EXISTS ] event_name
ON SCHEDULE schedule
[ ON COMPLETION [ NOT ] PRESERVE ]
[ ENABLE | DISABLE ]
[ COMMENT '  ' ]
DO SQL  ;
 
schedule : AT TIMESTAMP [+ INTERVAL interval ] | EVERY interval [ STARTS TIMESTAMP ] [ ENDS TIMESTAMP ]
interval : quantity { YEAR | QUARTER | MONTH | DAY |
           HOUR | MINUTE | WEEK | SECOND |
           YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND |
           HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND }

event_name:이벤트 이름,최대 길이 64 글자.
schedule:실행 시간.
[ON COMPLETION[NOT]PRESERVE]:사건 을 재 활용 해 야 합 니까?
[ENABLE|DISABLE]:이벤트 가 열 리 거나 닫 힙 니 다.
4.종료 이벤트

ALTER EVENT event_name DISABLE;

5.이벤트 시작

ALTER EVENT event_name ENABLE;
6.이벤트 삭제

DROP EVENT [IF EXISTS ] event_name;

7.모든 이벤트 보기

SHOW EVENTS;

8.사건 의 예
테스트 에 사용 할 간단 한 test 표를 만 듭 니 다.

CREATE TABLE `test` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
 `now` datetime DEFAULT NULL COMMENT '  ',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

이벤트 유형 은 두 가지 가 있 습 니 다.하 나 는 간격 트리거 이 고 하 나 는 특정한 시간 에 트리거 됩 니 다.
우 리 는 1 초 간격 으로 test 표 에 기록 을 삽입 합 니 다.

DROP EVENT IF EXISTS event_test;
CREATE EVENT event_test
ON SCHEDULE EVERY 1 SECOND STARTS '2017-08-22 11:57:00' ENDS '2017-08-22 12:00:00'
ON COMPLETION PRESERVE
ENABLE
COMMENT '     test     '
DO INSERT INTO test VALUES(NULL, now());

 
우 리 는 test 표 에 기록 을 삽입 할 시간 을 지정 합 니 다.

DROP EVENT IF EXISTS event_test2;
CREATE EVENT event_test2
ON SCHEDULE AT '2017-08-22 12:01:00'
ON COMPLETION PRESERVE
ENABLE
COMMENT '     test     '
DO INSERT INTO test VALUES(999999, now());

 
더 많은 MySQL 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 MySQL 데이터베이스 계획 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기