27.4 Использование триггеров
Триггер — это именованный объект базы данных, связанный с таблицей, который активируется при возникновении определённого события для этой таблицы. Триггеры могут использоваться для проверки значений, которые должны быть вставлены в таблицу, или для выполнения вычислений со значениями, участвующими в обновлении.
Триггер определяется для активации при выполнении операторов вставки, обновления или удаления строк в связанной таблице. Эти операции над строками являются событиями триггера. Например, строки могут быть вставлены операторами INSERT или LOAD
DATA, и триггер вставки активируется для каждой вставляемой строки. Триггер может быть настроен на активацию до или после события триггера. Например, вы можете задать триггер, который активируется перед каждой строкой, вставляемой в таблицу, или после каждой обновляемой строки.
Триггеры MySQL активируются только для изменений, внесённых в таблицы операторами SQL. Это включает изменения в базовых таблицах, на которых основаны обновляемые представления. Триггеры не активируются для изменений в таблицах, произведённых API, которые не передают операторы SQL в сервер MySQL. Это означает, что триггеры не активируются при обновлениях, выполненных с помощью API NDB.
Триггеры не активируются при изменениях в таблицах INFORMATION_SCHEMA или performance_schema. Эти таблицы на самом деле являются представлениями, и триггеры не разрешены для представлений.
В следующих разделах описывается синтаксис создания и удаления триггеров, приводятся примеры их использования и указывается, как получить метаданные триггеров.
Дополнительные ресурсы
При работе с триггерами вам могут быть полезны Форумы пользователей MySQL.
Ответы на часто задаваемые вопросы о триггерах в MySQL см. в разделе A.5, «MySQL 9.2 FAQ: Триггеры».
Существуют некоторые ограничения на использование триггеров; см. раздел 27.9, «Ограничения на хранимые программы».
Двоичное протоколирование для триггеров выполняется, как описано в разделе 27.8, «Двоичное протоколирование хранимых программ».
© 2025 Oracle
Licensed under the GPLv2 License.