Sobes.tech
Назад к вопросам
Junior — Middle
79

Какие сценарии применения триггеров в системах управления базами данных?

Компании, где спрашивали
AvitoAvito
Zonatelecom

Ответ от нейросети

sobes.tech AI

Триггеры в СУБД — это специальные процедуры, которые автоматически выполняются при определённых событиях (вставка, обновление, удаление данных). Основные сценарии применения:

  • Автоматическая проверка и поддержание целостности данных. Например, при удалении записи в одной таблице автоматически удалять связанные записи в другой.
  • Логирование изменений. Запись истории изменений данных для аудита.
  • Вычисление и обновление производных значений. Например, обновление поля с суммой или статусом при изменении связанных данных.
  • Ограничение доступа и валидация. Проверка условий перед изменением данных.

Пример триггера на PostgreSQL, который логирует изменения в таблице пользователей:

CREATE TRIGGER log_user_update
AFTER UPDATE ON users
FOR EACH ROW
EXECUTE FUNCTION log_update();

CREATE FUNCTION log_update() RETURNS trigger AS $$
BEGIN
  INSERT INTO user_changes(user_id, changed_at) VALUES (NEW.id, now());
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;