Ответ
Да, создавал. Триггеры в SQL — это хранимые процедуры, автоматически выполняемые при определенных событиях (INSERT, UPDATE, DELETE) в таблице.
Пример создания триггера в PostgreSQL:
CREATE OR REPLACE FUNCTION update_timestamp()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER update_timestamp_trigger
BEFORE UPDATE ON users
FOR EACH ROW
EXECUTE FUNCTION update_timestamp();
Этот триггер обновляет поле updated_at при каждом изменении записи в таблице users.
Нюансы:
- Триггеры могут усложнить отладку (логика скрыта в БД).
- Избыточные триггеры снижают производительность.
- В разных СУБД синтаксис может отличаться (например, в MySQL вместо
EXECUTE FUNCTIONиспользуетсяEXECUTE PROCEDURE).