> 데이터 베이스 > MySQL 튜토리얼 > 예제를 통해 mysql이 예약된 작업을 구현하는 방법 설명

예제를 통해 mysql이 예약된 작업을 구현하는 방법 설명

王林
풀어 주다: 2020-01-21 20:31:11
앞으로
2157명이 탐색했습니다.

예제를 통해 mysql이 예약된 작업을 구현하는 방법 설명

MySQL 5.1.6부터 매우 독특한 기능인 이벤트 스케줄러가 추가되었습니다. 이 기능은 정기적으로 특정 특정 작업(예: 레코드 삭제, 데이터 요약, 데이터 백업 등)을 수행하는 데 사용할 수 있습니다. 운영 체제의 예약된 작업으로만 수행할 수 있는 작업을 대체합니다.

더 언급할 가치가 있는 점은 MySQL의 이벤트 스케줄러는 매초 하나의 작업을 실행할 수 있는 반면, 운영 체제의 예약된 작업(예: Linux의 cron 또는 Windows의 작업 일정)은 매분 하나의 작업만 실행할 수 있다는 것입니다. 높은 실시간 데이터(예: 주식, 배당률, 점수 등)가 필요한 일부 애플리케이션에 매우 적합합니다.

이벤트 스케줄러는 특정 작업을 수행하기 위해 특정 기간을 기반으로 트리거되는 반면, 트리거는 특정 테이블에서 생성된 이벤트를 기반으로 트리거되기 때문에 임시 트리거라고도 합니다. 예, 차이점은 여기에 있습니다.

1. 켜져 있는지 확인하세요

> show variables like 'event_scheduler';
로그인 후 복사

2. 이벤트 스케줄러를 켭니다

set global event_scheduler = on;
로그인 후 복사

여기 설정은 mysql이 재시작되면 자동으로 꺼집니다. 항상 활성화해야 하는 경우 my.ini에서 다음과 같이 구성해야 합니다.

(권장 학습 비디오 튜토리얼: mysql 비디오 튜토리얼)

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자입니다.

일정: 실행 시간.

[ 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. 이벤트 예시

시작하자 테스트를 위한 간단한 테스트 테이블 만들기

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;
로그인 후 복사

이벤트 유형에는 두 가지가 있습니다. 하나는 간격 트리거이고 다른 하나는 특정 시간에 트리거됩니다.

우리는 매초 테스트 테이블에 레코드를 삽입합니다:

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());
로그인 후 복사

결과는 다음과 같습니다:

예제를 통해 mysql이 예약된 작업을 구현하는 방법 설명

권장 관련 기사 튜토리얼: mysql 튜토리얼

위 내용은 예제를 통해 mysql이 예약된 작업을 구현하는 방법 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:jb51.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿