Что такое триггер в SQL и для чего он используется?
Уровень: Senior
Ответ
Триггер — это хранимая процедура, которая автоматически выполняется при наступлении определённого события в базе данных (например, при вставке, обновлении или удалении записи в указанной таблице). Триггер привязан к таблице и конкретному событию (BEFORE/AFTER INSERT/UPDATE/DELETE). Когда такое событие происходит, СУБД запускает код триггера (это может быть, например, проверка или модификация данных, запись в журнал, синхронизация с другой таблицей). Используют триггеры для обеспечения сложных целостных ограничений, автоматического вычисления производных значений, аудита изменений (логирование в отдельную таблицу истории) и т.д. Однако злоупотребление триггерами может усложнить отладку и понимание системы, так как логика "спрятана" в базе, и неочевидно, что при изменении таблицы произойдёт что-то ещё. Поэтому триггеры применяют аккуратно для задач, которые действительно лучше решать на уровне БД (гарантия целостности, аудирование).