28.3.14 INFORMATION_SCHEMA EVENTS 表
The EVENTS
table provides information about Event Manager events, which are discussed in Section 27.4, “Using the Event Scheduler”.
The EVENTS
table has these columns:
-
EVENT_CATALOG
The name of the catalog to which the event belongs. This value is always
def
. -
EVENT_SCHEMA
The name of the schema (database) to which the event belongs.
-
EVENT_NAME
The name of the event.
-
DEFINER
The account named in the
DEFINER
clause (often the user who created the event), in'
format.user_name
'@'host_name
' -
TIME_ZONE
The event time zone, which is the time zone used for scheduling the event and that is in effect within the event as it executes. The default value is
SYSTEM
. -
EVENT_BODY
The language used for the statements in the event's
DO
clause. The value is alwaysSQL
. -
EVENT_DEFINITION
The text of the SQL statement making up the event's
DO
clause; in other words, the statement executed by this event. -
EVENT_TYPE
The event repetition type, either
ONE TIME
(transient) orRECURRING
(repeating). -
EXECUTE_AT
For a one-time event, this is the
DATETIME
value specified in theAT
clause of theCREATE EVENT
statement used to create the event, or of the lastALTER EVENT
statement that modified the event. The value shown in this column reflects the addition or subtraction of anyINTERVAL
value included in the event'sAT
clause. For example, if an event is created usingON SCHEDULE AT CURRENT_TIMESTAMP + '1:6' DAY_HOUR
, and the event was created at 2018-02-09 14:05:30, the value shown in this column would be'2018-02-10 20:05:30'
. If the event's timing is determined by anEVERY
clause instead of anAT
clause (that is, if the event is recurring), the value of this column isNULL
. -
INTERVAL_VALUE
For a recurring event, the number of intervals to wait between event executions. For a transient event, the value is always
NULL
. -
INTERVAL_FIELD
The time units used for the interval which a recurring event waits before repeating. For a transient event, the value is always
NULL
. -
SQL_MODE
The SQL mode in effect when the event was created or altered, and under which the event executes. For the permitted values, see Section 7.1.11, “Server SQL Modes”.
-
STARTS
The start date and time for a recurring event. This is displayed as a
DATETIME
value, and isNULL
if no start date and time are defined for the event. For a transient event, this column is alwaysNULL
. For a recurring event whose definition includes aSTARTS
clause, this column contains the correspondingDATETIME
value. As with theEXECUTE_AT
column, this value resolves any expressions used. If there is noSTARTS
clause affecting the timing of the event, this column isNULL
-
ENDS
For a recurring event whose definition includes a
ENDS
clause, this column contains the correspondingDATETIME
value. As with theEXECUTE_AT
column, this value resolves any expressions used. If there is noENDS
clause affecting the timing of the event, this column isNULL
. -
STATUS
The event status. One of
ENABLED
,DISABLED
, orREPLICA_SIDE_DISABLED
(prior to MySQL 8.2.0, this wasSLAVESIDE_DISABLED
, now deprecated).REPLICA_SIDE_DISABLED
indicates that the creation of the event occurred on another MySQL server acting as a replication source and replicated to the current MySQL server which is acting as a replica, but the event is not presently being executed on the replica. For more information, see Section 19.5.1.16, “Replication of Invoked Features”. information. -
ON_COMPLETION
One of the two values
PRESERVE
orNOT PRESERVE
. -
CREATED
The date and time when the event was created. This is a
TIMESTAMP
value. -
LAST_ALTERED
The date and time when the event was last modified. This is a
TIMESTAMP
value. If the event has not been modified since its creation, this value is the same as theCREATED
value. -
LAST_EXECUTED
The date and time when the event last executed. This is a
DATETIME
value. If the event has never executed, this column isNULL
.LAST_EXECUTED
indicates when the event started. As a result, theENDS
column is never less thanLAST_EXECUTED
. -
EVENT_COMMENT
The text of the comment, if the event has one. If not, this value is empty.
-
ORIGINATOR
The server ID of the MySQL server on which the event was created; used in replication. This value may be updated by
ALTER EVENT
to the server ID of the server on which that statement occurs, if executed on a replication source. The default value is 0. -
CHARACTER_SET_CLIENT
The session value of the
character_set_client
system variable when the event was created. -
COLLATION_CONNECTION
The session value of the
collation_connection
system variable when the event was created. -
DATABASE_COLLATION
The collation of the database with which the event is associated.
-
EVENTS
is a nonstandardINFORMATION_SCHEMA
table. -
Times in the
EVENTS
table are displayed using the event time zone, the current session time zone, or UTC, as described in Section 27.4.4, “Event Metadata”. -
For more information about
REPLICA_SIDE_DISABLED
and theORIGINATOR
column, see Section 19.5.1.16, “Replication of Invoked Features”.
Suppose that the user 'jon'@'ghidora'
creates an event named e_daily
, and then modifies it a few minutes later using an ALTER EVENT
statement, as shown here:
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
ENABLE;
(Note that comments can span multiple lines.)
This user can then run the following SELECT
statement, and obtain the output shown:
mysql> SELECT * FROM INFORMATION_SCHEMA.EVENTS
WHERE EVENT_NAME = 'e_daily'
AND EVENT_SCHEMA = 'myschema'\G
*************************** 1. row ***************************
EVENT_CATALOG: def
EVENT_SCHEMA: myschema
EVENT_NAME: e_daily
DEFINER: jon@ghidora
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: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,
NO_ENGINE_SUBSTITUTION
STARTS: 2018-08-08 11:06:34
ENDS: NULL
STATUS: ENABLED
ON_COMPLETION: NOT PRESERVE
CREATED: 2018-08-08 11:06:34
LAST_ALTERED: 2018-08-08 11:06:34
LAST_EXECUTED: 2018-08-08 16:06:34
EVENT_COMMENT: Saves total number of sessions then clears the
table each day
ORIGINATOR: 1
CHARACTER_SET_CLIENT: utf8mb4
COLLATION_CONNECTION: utf8mb4_0900_ai_ci
DATABASE_COLLATION: utf8mb4_0900_ai_ci
Event information is also available from the SHOW EVENTS
statement. See Section 15.7.7.19, “SHOW EVENTS Statement”. The following statements are equivalent:
SELECT
EVENT_SCHEMA, EVENT_NAME, DEFINER, TIME_ZONE, EVENT_TYPE, EXECUTE_AT,
INTERVAL_VALUE, INTERVAL_FIELD, STARTS, ENDS, STATUS, ORIGINATOR,
CHARACTER_SET_CLIENT, COLLATION_CONNECTION, DATABASE_COLLATION
FROM INFORMATION_SCHEMA.EVENTS
WHERE table_schema = 'db_name'
[AND column_name LIKE 'wild']
SHOW EVENTS
[FROM db_name]
[LIKE 'wild']