Можете ли вы изменить существующий триггер mysql после его создания?

В mysql Я могу создать триггер, а затем показать информацию о нем следующим образом:

mysql> show triggers like 'fooTrigger';

Эта команда дает вывод, который выглядит очень много, как оператор select, и строка, показывающая соответствующий триггер. Возможно ли обновить столбец в строке, которая показывает мне?

Например, один столбец имеет имя Statement, и он определяет, что происходит при активации триггера. Можно ли изменить поле Statement для fooTrigger, чтобы триггер сделал что-то другое? Или мне нужно drop и rec create триггер?

Ответ 1

Начиная с MySQL 5.5, вы должны сбросить и заново создать триггер.
Невозможно обновить столбец Statement, не отбрасывая триггер.

Документация: CREATE TRIGGER DROP TRIGGER

Вы также можете получить информацию о триггерах, используя таблицы INFORMATION_SCHEMA:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS

Но, поскольку эти таблицы являются фактически представлениями, вы не можете использовать UPDATE на них.
Это просто более удобный способ доступа и управления информацией, чем использование SHOW TRIGGERS.

Документация: INFORMATION_SCHEMA.TRIGGERS

Ответ 2

В ОС Windows может потребоваться Интеграция с коннектором /Net Visual Studio для просмотра и редактирования существующего объекта базы данных, Ограничение состоит в том, что вы можете редактировать триггер в цикле For each row ....

В противном случае только один вариант - это drop и re создать триггер.
Но перед тем, как сбросить триггер, убедитесь, что таблица, связанная с триггером, заблокирована и
и разблокируется после запуска триггера.