我有一个 MySQL 数据库。我正在运行两个 MySQL 事件。我需要摆脱一个。我不记得它的名字了。我该怎么办?
其简单
SHOW EVENTS
列出了当前模式中的所有事件
要查看特定模式的事件,请使用 FROM 子句。例如,要查看测试模式的事件,请使用以下语句:
SHOW EVENTS FROM test;
从
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';
SELECT * FROM information_schema.EVENTS
SHOW EVENTS\G
这将为您带来所有现有事件的列表。对于显示事件语法:http://dev.mysql.com/doc/refman/5.1/en/show-events.html
show events;
将显示所有事件。
如果您想查看 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';
您可以使用下面的 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):未选择数据库