Триггер — функция в БД, которая автоматически выполняется при определённом событии (INSERT, UPDATE, DELETE).
CREATE OR REPLACE FUNCTION update_modified()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER set_updated_at
BEFORE UPDATE ON users
FOR EACH ROW
EXECUTE FUNCTION update_modified();
Типы: BEFORE/AFTER, FOR EACH ROW/STATEMENT. Применения: автообновление timestamps, аудит изменений, каскадные обновления, валидация.
Минусы: неявная логика (сложно дебажить), замедляют write-операции, сложности с репликацией. Рекомендация: использовать минимально, предпочитать логику в приложении.