21.7 INFORMATION_SCHEMA EVENTS Table
EVENTS 테이블은 섹션 20.4 "이벤트 스케줄러 사용" 에서 설명하고있는 예약 된 이벤트에 대한 정보를 제공합니다. SHOW Name 값은 SHOW EVENTS 문 열 이름에 해당합니다.
INFORMATION_SCHEMA Name | SHOW Name | Remarks |
|---|---|---|
EVENT_CATALOG | | def, MySQL extension |
EVENT_SCHEMA | Db | MySQL extension |
EVENT_NAME | Name | MySQL extension |
DEFINER | Definer | MySQL extension |
TIME_ZONE | Time zone | MySQL extension |
EVENT_BODY | | MySQL extension |
EVENT_DEFINITION | | MySQL extension |
EVENT_TYPE | Type | MySQL extension |
EXECUTE_AT | Execute at | MySQL extension |
INTERVAL_VALUE | Interval value | MySQL extension |
INTERVAL_FIELD | Interval field | MySQL extension |
SQL_MODE | | MySQL extension |
STARTS | Starts | MySQL extension |
ENDS | Ends | MySQL extension |
STATUS | Status | MySQL extension |
ON_COMPLETION | | MySQL extension |
CREATED | | MySQL extension |
LAST_ALTERED | | MySQL extension |
LAST_EXECUTED | | MySQL extension |
EVENT_COMMENT | | MySQL extension |
ORIGINATOR | Originator | MySQL extension |
CHARACTER_SET_CLIENT | character_set_client | MySQL extension |
COLLATION_CONNECTION | collation_connection | MySQL extension |
DATABASE_COLLATION | Database Collation | MySQL extension |
참고 :
EVENTS테이블은 비표준 테이블입니다.EVENT_CATALOG:이 컬럼의 값은 항상def입니다.EVENT_SCHEMA:이 이벤트가 속한 스키마 (데이터베이스)의 이름입니다.EVENT_NAME: 이벤트의 이름입니다.DEFINER:'형식으로 나타낸 이벤트를 생성 한 사용자 계정입니다.user_name'@'host_name'TIME_ZONE: 이벤트 시간대입니다. 이 이벤트를 예약하는 데 사용되며 실행할 때 이벤트에서 유효한 시간대입니다. 기본값은SYSTEM입니다.EVENT_BODY: 이벤트DO절에 사용되는 언어입니다. MySQL 5.6에서는 이것은 항상SQL입니다.이 컬럼은 이전의 MySQL 버전에 존재하고 있던 것과 같은 이름 (현재는
EVENT_DEFINITION라는)의 컬럼과 혼동하지 마십시오.EVENT_DEFINITION: 이벤트DO절을 구성하는 SQL 문 텍스트입니다. 즉,이 이벤트에서 실행 된 문입니다.EVENT_TYPE: 이벤트의 반복 유형이며,ONE TIME(임시) 또는RECURRING(반복) 중 하나입니다.EXECUTE_AT: 한 번만 이벤트의 경우,이 이벤트의 작성에 사용 된CREATE EVENT문 또는 이벤트를 변경 한 마지막ALTER EVENT문AT절에 지정된DATETIME값입니다. 이 컬럼에 표시된 값은 이벤트의AT절에 포함 된INTERVAL값의 가산 또는 감산에 영향을줍니다. 예를 들어, 이벤트가ON SCHEDULE AT CURRENT_TIMESTAMP + '1:6' DAY_HOUR을 사용하여 작성된 이벤트가 2006-02-09의 14:05:30에 작성된 경우, 컬럼에 표시되는 값은'2006-02-10 20:05:30'입니다.이벤트 타이밍이
AT절 대신EVERY절에서 결정되는 경우 (즉, 이벤트가 반복적 인 경우),이 컬럼의 값은NULL입니다.INTERVAL_VALUE: 반복 이벤트의 경우이 열에는 이벤트EVERY절 숫자 부분이 포함됩니다.한 번만 이벤트 (
AT절은 타이밍이 결정되는 이벤트)의 경우이 열은NULL입니다.INTERVAL_FIELD: 반복 이벤트의 경우,이 컬럼은 이벤트의 타이밍을 제어하는EVERY절 단위 부분이 포함됩니다. 따라서이 컬럼에는「YEAR」,「QUARTER」,「DAY」등의 값이 포함됩니다.한 번만 이벤트 (
AT절은 타이밍이 결정되는 이벤트)의 경우이 열은NULL입니다.SQL_MODE: 이벤트가 생성되거나 변경된 경우에 효과적이며, 이벤트가 실행했을 때의 SQL 모드입니다. 가능한 값은 섹션 5.1.7 "서버 SQL 모드" 를 참조하십시오.STARTS: 정의에STARTS절이 포함 된 반복 이벤트는이 컬럼에는 해당DATETIME값이 포함됩니다.EXECUTE_AT컬럼의 경우와 마찬가지로,이 값은 사용되는 식을 풉니 다.이벤트의 타이밍에 영향을
STARTS절이 없으면,이 컬럼은NULL입니다ENDS: 정의에ENDS절이 포함 된 반복 이벤트는이 컬럼에는 해당DATETIME값이 포함됩니다.EXECUTE_AT컬럼의 경우와 마찬가지로,이 값은 사용되는 식을 풉니 다.이벤트의 타이밍에 영향을
ENDS절이 없으면,이 컬럼은NULL입니다.STATUS:ENABLED,DISABLED,SLAVESIDE_DISABLED의 3 개의 값 중 하나입니다.SLAVESIDE_DISABLED이벤트 만들기가 복제 마스터로 작동하는 다른 MySQL 서버로 진행되며 슬레이브로 작동하는 현재의 MySQL 서버에 복제되었지만 이벤트는 현재 슬레이브에서 실행되지 않은 수를 나타냅니다. 자세한 내용은 섹션 17.4.1.11 "호출되는 기능의 복제" 를 참조하십시오.ON_COMPLETION:PRESERVE또는NOT PRESERVE두 값 중 하나입니다.CREATED: 이벤트가 생성 된 시간입니다. 이것은TIMESTAMP값입니다.LAST_ALTERED: 이벤트가 마지막으로 변경된 시간입니다. 이것은TIMESTAMP값입니다. 이벤트가 생성 된 이후 변경되지 않은 경우,이 컬럼에는CREATED컬럼과 동일한 값을 유지합니다.LAST_EXECUTED: 이벤트가 마지막으로 실행 된 시간입니다.DATETIME값. 이벤트가 한 번도 실행되지 않은 경우,이 컬럼은NULL입니다.LAST_EXECUTED이벤트가 시작된 시점을 나타냅니다. 따라서ENDS열이LAST_EXECUTED보다 작을 수는 결코 없습니다.EVENT_COMMENT: 이벤트에 의견이 있으면 댓글의 텍스트입니다. 없으면,이 컬럼의 값은 빈 문자열입니다.ORIGINATOR:이 이벤트가 생성 된 MySQL 서버의 서버 ID로 복제에 사용됩니다. 기본값은 0입니다.CHARACTER_SET_CLIENT: 이벤트가 생성되었을 때의character_set_client시스템 변수 세션 값입니다.COLLATION_CONNECTION: 이벤트가 생성되었을 때의collation_connection시스템 변수 세션 값입니다.DATABASE_COLLATION: 이벤트가 연결된 데이터베이스의 데이터 정렬입니다.
Example : 다음과 같이 사용자 jon@ghidora 이 e_daily 라는 이벤트를 만들고 ALTER EVENT 문을 사용하여 몇 분 후 변경합니다.
DELIMITER |
CREATE EVENT e_daily
ON SCHEDULE
EVERY 1 DAY
COMMENT 'Saves total number of sessions then clears the table each day'
DO
BEGIN
INSERT INTO site_activity.totals (time, total)
SELECT CURRENT_TIMESTAMP, COUNT(*)
FROM site_activity.sessions;
DELETE FROM site_activity.sessions;
END |
DELIMITER ;
ALTER EVENT e_daily
ENABLED;
(댓글은 여러 줄에 걸쳐 쓸 수 있습니다.)
이 사용자는 이어 다음 SELECT 문을 실행하고 다음 출력이 표시됩니다.
mysql>SELECT * FROM INFORMATION_SCHEMA.EVENTS>WHERE EVENT_NAME = 'e_daily'>AND EVENT_SCHEMA = 'myschema'\G*************************** 1. row *************************** EVENT_CATALOG: def EVENT_SCHEMA: test EVENT_NAME: e_daily DEFINER: me@localhost TIME_ZONE: SYSTEM EVENT_BODY: SQL EVENT_DEFINITION: BEGIN INSERT INTO site_activity.totals (time, total) SELECT CURRENT_TIMESTAMP, COUNT(*) FROM site_activity.sessions; DELETE FROM site_activity.sessions; END EVENT_TYPE: RECURRING EXECUTE_AT: NULL INTERVAL_VALUE: 1 INTERVAL_FIELD: DAY SQL_MODE: STARTS: 2008-09-03 12:13:39 ENDS: NULL STATUS: ENABLED ON_COMPLETION: NOT PRESERVE CREATED: 2008-09-03 12:13:39 LAST_ALTERED: 2008-09-03 12:13:39 LAST_EXECUTED: NULL EVENT_COMMENT: Saves total number of sessions then clears the table each day ORIGINATOR: 1 CHARACTER_SET_CLIENT: latin1 COLLATION_CONNECTION: latin1_swedish_ci DATABASE_COLLATION: latin1_swedish_ci
섹션 20.4.4 "이벤트 메타 데이터" 에서 설명하고있는 바와 같이, EVENTS 테이블의 시간은 이벤트 시간대 또는 현재의 세션 시간대를 사용하여 표시됩니다.
섹션 13.7.5.19 "SHOW EVENTS 구문" 을 참조하십시오.