显示我的数据库上运行的所有 MySQL 事件?

问题描述 投票:0回答:7

我有一个 MySQL 数据库。我正在运行两个 MySQL 事件。我需要摆脱一个。我不记得它的名字了。我该怎么办?

mysql database cron job-scheduling mysql-event
7个回答
32
投票

其简单

SHOW EVENTS
列出了当前模式中的所有事件

要查看特定模式的事件,请使用 FROM 子句。例如,要查看测试模式的事件,请使用以下语句:

SHOW EVENTS FROM test;

20
投票

information_schema.EVENTS
表开始。

USE information_schema;

DESCRIBE EVENTS;
+----------------------+---------------+------+-----+---------------------+-------+
| Field                | Type          | Null | Key | Default             | Extra |
+----------------------+---------------+------+-----+---------------------+-------+
| EVENT_CATALOG        | varchar(64)   | YES  |     | NULL                |       |
| EVENT_SCHEMA         | varchar(64)   | NO   |     |                     |       |
| EVENT_NAME           | varchar(64)   | NO   |     |                     |       |
| DEFINER              | varchar(77)   | NO   |     |                     |       |
| TIME_ZONE            | varchar(64)   | NO   |     |                     |       |
| EVENT_BODY           | varchar(8)    | NO   |     |                     |       |
| EVENT_DEFINITION     | longtext      | NO   |     | NULL                |       |
| EVENT_TYPE           | varchar(9)    | NO   |     |                     |       |
| EXECUTE_AT           | datetime      | YES  |     | NULL                |       |
| INTERVAL_VALUE       | varchar(256)  | YES  |     | NULL                |       |
| INTERVAL_FIELD       | varchar(18)   | YES  |     | NULL                |       |
| SQL_MODE             | varchar(8192) | NO   |     |                     |       |
| STARTS               | datetime      | YES  |     | NULL                |       |
| ENDS                 | datetime      | YES  |     | NULL                |       |
| STATUS               | varchar(18)   | NO   |     |                     |       |
| ON_COMPLETION        | varchar(12)   | NO   |     |                     |       |
| CREATED              | datetime      | NO   |     | 0000-00-00 00:00:00 |       |
| LAST_ALTERED         | datetime      | NO   |     | 0000-00-00 00:00:00 |       |
| LAST_EXECUTED        | datetime      | YES  |     | NULL                |       |
| EVENT_COMMENT        | varchar(64)   | NO   |     |                     |       |
| ORIGINATOR           | bigint(10)    | NO   |     | 0                   |       |
| CHARACTER_SET_CLIENT | varchar(32)   | NO   |     |                     |       |
| COLLATION_CONNECTION | varchar(32)   | NO   |     |                     |       |
| DATABASE_COLLATION   | varchar(32)   | NO   |     |                     |       |
+----------------------+---------------+------+-----+---------------------+-------+

SELECT EVENT_NAME FROM EVENTS WHERE EVENT_SCHEMA = 'your_database_name';

14
投票

显示活动更多详情

SELECT * FROM information_schema.EVENTS

4
投票
SHOW EVENTS\G

这将为您带来所有现有事件的列表。对于显示事件语法:http://dev.mysql.com/doc/refman/5.1/en/show-events.html


3
投票
show events;

将显示所有事件。


1
投票

如果您想查看 MySQL 中所有数据库的所有事件调度程序。

SELECT * FROM information_schema.EVENTS;

如果您想查看 MySQL 中特定数据库的所有事件调度程序。

SHOW EVENTS FROM 'your_database_name';

事件调度程序特定查询:

SELECT EVENT_DEFINITION
FROM information_schema.EVENTS
WHERE EVENT_NAME = 'your_event_name';

数据库特定事件调度程序查询:

SELECT EVENT_DEFINITION
FROM information_schema.EVENTS
WHERE EVENT_NAME = 'your_event_name'
AND EVENT_SCHEMA = 'your_database_name';

0
投票

您可以使用下面的 SQL 显示所有事件。 *文档解释了

INFORMATION_SCHEMA.EVENTS
表,我建议使用\G,它可以更清楚地显示它们,下面的SQL可以比我最后解释的SHOW EVENTS显示更多详细信息:

SELECT * FROM INFORMATION_SCHEMA.EVENTS;

或者:

SELECT * FROM INFORMATION_SCHEMA.EVENTS\G

并且,您可以使用下面的 SQL 显示当前正在运行的所有事件:

SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE STATUS = 'ENABLED';

并且,您可以使用下面的 SQL 显示当前未运行的所有事件:

SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE STATUS = 'DISABLED';

并且,您可以使用

USE
显示
apple
数据库选择apple数据库的事件。 *文档解释了
SHOW EVENTS
,我建议使用
\G
,它可以更清楚地显示它们:

USE apple;
SHOW EVENTS;

或者:

USE apple;
SHOW EVENTS\G

或者:

USE apple;
SHOW EVENTS FROM apple;

或者:

USE apple;
SHOW EVENTS FROM apple\G

并且,您可以使用

apple
选择
apple
数据库来显示
USE
数据库当前运行的事件:

USE apple;
SHOW EVENTS WHERE STATUS = 'ENABLED';

并且,您可以使用

apple
选择
apple
数据库来显示
USE
数据库当前未运行的事件:

USE apple;
SHOW EVENTS WHERE STATUS = 'DISABLED';

并且,即使使用

orange
选择
apple
数据库,您也可以显示
USE
数据库的事件:

USE apple;
SHOW EVENTS FROM orange;

并且,您可以使用

apple
显示
USE
数据库的事件,而不选择任何一个数据库:

SHOW EVENTS FROM apple;

请小心,如果您运行下面的 SQL 时未使用

USE
选择任何一个数据库:

SHOW EVENTS;

然后出现如下错误:

错误 1046 (3D000):未选择数据库

© www.soinside.com 2019 - 2024. All rights reserved.