1
resposta

[Dúvida] Criando uma Trigger

Olá, tudo bem?

na query:

CREATE TRIGGER CalculaFaturamentoDiario
AFTER INSERT ItensPedidos
FOR EACH ROW

foi inserido a tabela ItensPedidos, pois toda atualização que tiver na tabela 'ItenPedidos' será atualizado automaticamente na tabela 'FaturamentoDiario', certo?

Minha dúvida é: porque não foi adicionado a tabela 'Pedido' junto à tabela ItensPedidos em 'AFTER INSERT ItensPedidos'?

por ex: AFTER INSERT ItensPedidos, Pedido

Pois ambas tabelas possuem o mesmo ID de pedido, seria isso?

1 resposta

Olá Barbara, tudo bem?

Sua dúvida é muito pertinente! Vamos lá: quando você cria uma TRIGGER em SQL, você está definindo um gatilho que será acionado por um evento específico em uma tabela. No seu caso, o evento é um INSERT na tabela ItensPedidos.

A razão pela qual a tabela Pedido não foi incluída diretamente no AFTER INSERT é porque a TRIGGER está configurada para reagir a eventos de inserção em uma tabela específica, que é ItensPedidos. Isso significa que, sempre que um novo item de pedido for adicionado, o gatilho será acionado para atualizar o FaturamentoDiario.

Embora ambas as tabelas, ItensPedidos e Pedido, possuam o mesmo ID de pedido, a lógica por trás da TRIGGER é que a atualização do faturamento diário está mais diretamente relacionada à inserção de itens de pedidos, já que cada item tem um impacto direto no valor total do pedido.

Se fosse necessário que a TRIGGER também reagisse a inserções na tabela Pedido, seria necessário criar uma TRIGGER separada para essa tabela. No entanto, como o cálculo do faturamento diário depende dos itens que compõem o pedido, faz sentido que a TRIGGER esteja vinculada à tabela ItensPedidos.

Espero ter ajudado. Conte com o apoio do fórum :)

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓