Imagem de fundo

Considere a seguinte situação hipotética:Uma equipe está desenvolvendo um sistema de pe...

Considere a seguinte situação hipotética:


Uma equipe está desenvolvendo um sistema de pedidos, utilizando PostgreSQL. Existe uma tabela pedidos com as colunas:


  1. id
  2. cliente_id
  3. valor_total
  4. status
  5. criado_em
  6. atualizado_em


Durante uma auditoria interna, um analista de banco de dados identificou que o campo atualizado_em nem sempre reflete a última modificação do registro, pois a aplicação depende do backend para atualizar esse campo manualmente. Em alguns casos, desenvolvedores esqueceram de atualizar o timestamp em operações de UPDATE, gerando inconsistência nos relatórios.


A equipe decidiu resolver o problema no nível do banco de dados, garantindo que o campo atualizado_em seja atualizado automaticamente sempre que houver alteração no registro.


Assinale a alternativa que apresenta o comando que garante que o campo atualizado_em seja atualizado automaticamente sempre que um registro da tabela pedidos for modificado:


A

Criar uma constraint CHECK, que valide se atualizado_em é maior que criado_em em cada atualização.


B

Criar uma view com NOW() no campo atualizado_em, substituindo o acesso direto à tabela.


C

Criar uma trigger AFTER UPDATE, que execute um novo comando UPDATE na mesma tabela para alterar o campo atualizado_em.


D

Criar uma trigger BEFORE UPDATE na tabela pedidos, que execute uma função para definir NEW.atualizado_em = NOW() antes da atualização do registro.