Можете ли вы изменить существующий триггер 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 создать триггер.
Но перед тем, как сбросить триггер, убедитесь, что таблица, связанная с триггером, заблокирована и
и разблокируется после запуска триггера.