Как вы перечисляете все триггеры в базе данных MySQL?

Какая команда выводит список всех триггеров в базе данных MySQL?

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
109
0
121 892
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Команда для вывода списка всех триггеров:

show triggers;

или вы можете получить доступ к таблице INFORMATION_SCHEMA напрямую:

select trigger_schema, trigger_name, action_statement
from information_schema.triggers
  • Это можно сделать начиная с версии 5.0.10.
  • Подробнее о Таблица TRIGGERS здесь.

Я бы рекомендовал использовать запрос «SHOW TRIGGERS» вместо прямого доступа к information_schema - последний будет очень медленным, если на сервере будет более тысячи баз данных, в то время как «SHOW TRIGGERS» по-прежнему имеет выдающуюся производительность.

Martin Tajur 18.11.2011 13:45

Спасибо за вторую «сложную» версию. Первый не работает (не знаю причину) ни на одном из хостов ...

userlond 09.02.2015 11:00

Обратите внимание, что SHOW TRIGGERS требует, чтобы у вас была привилегия TRIGGER для этой базы данных и таблицы. Если вы войдете в MySQL с непривилегированным пользователем, выполнение SHOW TRIGGERS ничего не вернет, а не выдаст ошибку. Это может сбивать с толку, если вы не знаете о требованиях привилегий.

Christopher Schultz 23.03.2016 16:37

Чтобы показать конкретный триггер в конкретной схеме, вы можете попробовать следующее:

select * from information_schema.triggers where 
information_schema.triggers.trigger_name like '%trigger_name%' and 
information_schema.triggers.trigger_schema like '%data_base_name%'

Вы можете использовать ниже, чтобы найти конкретное определение триггера.

SHOW TRIGGERS LIKE '%trigger_name%'\G

или ниже, чтобы показать все триггеры в базе данных. Он будет работать с MySQL 5.0 и выше.

SHOW TRIGGERS\G

Я надеюсь, что следующий код даст вам больше информации.

select * from information_schema.triggers where 
information_schema.triggers.trigger_schema like '%your_db_name%'

Это даст вам всего 22 столбца в Версия MySQL: 5.5.27 и выше.

TRIGGER_CATALOG 
TRIGGER_SCHEMA
TRIGGER_NAME
EVENT_MANIPULATION
EVENT_OBJECT_CATALOG
EVENT_OBJECT_SCHEMA 
EVENT_OBJECT_TABLE
ACTION_ORDER
ACTION_CONDITION
ACTION_STATEMENT
ACTION_ORIENTATION
ACTION_TIMING
ACTION_REFERENCE_OLD_TABLE
ACTION_REFERENCE_NEW_TABLE
ACTION_REFERENCE_OLD_ROW
ACTION_REFERENCE_NEW_ROW
CREATED 
SQL_MODE
DEFINER 
CHARACTER_SET_CLIENT
COLLATION_CONNECTION
DATABASE_COLLATION

Я бы избегал использования LIKE при работе со схемой. Я работал в средах, где это было бы подвержено ошибкам, когда у клиента была база данных с именем «company», а другая - с именем «company_project». Я также предлагаю использовать KEYWORDS с заглавной буквы для ясности, а INFORMATION_SCHEMA и столбцы там, чтобы было ясно, что вы не имеете дело с обычной БД.

AndrewWhalan 29.01.2018 08:04

Другие вопросы по теме