Sobes.tech
Junior — Middle

Маалыматтар базасын башкаруу системаларында триггерлердин колдонуу сценарийлери кандай?

sobes.tech AI

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;