MySQL 如何列出MySQL数据库中的所有触发器
要查看MySQL数据库中的所有触发器,可以使用SHOW命令。查询如下所示−
mysql> show triggers;
以下是输出−
+----------------+--------+----------------------+--------------------------------------------------------------------+--------+------------------------+--------------------------------------------+---------+----------------------+----------------------+--------------------+
| Trigger | Event | Table | Statement | Timing | Created | sql_mode | Definer | character_set_client | collation_connection | Database Collation |
+----------------+--------+----------------------+--------------------------------------------------------------------+--------+------------------------+--------------------------------------------+---------+----------------------+----------------------+--------------------+
| binsertTrigger | INSERT | functiontriggersdemo | SET new.Id = uuid() | BEFORE | 2018-10-16 13:36:09.86 | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | root@% | cp850 | cp850_general_ci | utf8mb4_unicode_ci |
| Table1Trigger | INSERT | table1 | begin
insert into Table2(id, name) values (new.id, new.name);
end | AFTER | 2018-10-23 10:51:31.76 | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | root@% | cp850 | cp850_general_ci | utf8mb4_unicode_ci |
| insertBef | INSERT | tblfunctiontrigger | SET new.id = uuid() | BEFORE | 2018-10-16 13:44:10.93 | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | root@% | cp850 | cp850_general_ci | utf8mb4_unicode_ci |
+----------------+--------+----------------------+--------------------------------------------------------------------+--------+------------------------+--------------------------------------------+---------+----------------------+----------------------+--------------------+
3行记录(0.13秒)
您可以通过以下查询使用information_schema表访问触发器的信息。
注 − 您需要使用MySQL版本5.0.10及以上版本。我目前正在使用MySQL版本8.0.12 −
mysql> select trigger_schema, trigger_name, action_statement
−> from information_schema.triggers;
以下是输出−
+----------------+----------------------------+-------------------------------------------------------------------------------------------------------------------+
| TRIGGER_SCHEMA | TRIGGER_NAME | ACTION_STATEMENT |
+----------------+----------------------------+-------------------------------------------------------------------------------------------------------------------+
| sys | sys_config_insert_set_user | BEGIN IF @sys.ignore_sys_config_triggers != true AND NEW.set_by IS NULL THEN SET NEW.set_by = USER(); END IF; END |
| sys | sys_config_update_set_user | BEGIN IF @sys.ignore_sys_config_triggers != true AND NEW.set_by IS NULL THEN SET NEW.set_by = USER(); END IF; END |
| business | binsertTrigger | SET new.Id = uuid() |
| business | insertBef | SET new.id = uuid() |
| business | Table1Trigger | begin
insert into Table2(id, name) values (new.id, new.name);end |
+----------------+----------------------------+-------------------------------------------------------------------------------------------------------------------+
5 rows in set (0.00 sec)
阅读更多:MySQL 教程
极客教程