Sobes.tech
Junior — Middle

Quais são os cenários de uso de triggers em sistemas de gestão de bases de dados?

sobes.tech IA

Resposta da IA

Os triggers em SGBDs são procedimentos especiais que são executados automaticamente em certos eventos (inserção, atualização, eliminação de dados). Principais cenários de uso:

  • Verificação automática e manutenção da integridade dos dados. Por exemplo, ao eliminar um registo numa tabela, eliminar automaticamente os registos relacionados noutra.
  • Registo de alterações. Registar o histórico de alterações de dados para auditoria.
  • Cálculo e atualização de valores derivados. Por exemplo, atualizar um campo com a soma ou o estado ao alterar dados relacionados.
  • Restrição de acesso e validação. Verificação de condições antes de alterar dados.

Exemplo de um trigger no PostgreSQL que regista alterações na tabela de utilizadores:

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;