Что такое триггер?

Junior
535 просмотров
AFK Offer AI

Триггер — функция в БД, которая автоматически выполняется при определённом событии (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-операции, сложности с репликацией. Рекомендация: использовать минимально, предпочитать логику в приложении.

Следующий вопрос

Как спроектировать notification service?