Buscar

Considerando a tabela de vendas, crie uma trigger e uma função para calcular o total vendido, sendo que o gatilho de início da trigger é sempre a i...

Considerando a tabela de vendas, crie uma trigger e uma função para calcular o total vendido, sendo que o gatilho de início da trigger é sempre a inserção de uma nova venda. minhas tabelas são as seguintes: vandas com as seguintes colunas: id-venda, id-produto, nome_produto, preco, data_venda, quantidade; e a tabela total_vendas com as seguintes colunas: id_produto, total_venda, t_produtos_vendidos.

💡 1 Resposta

User badge image

Ed Verified user icon

Segue abaixo um exemplo de como criar uma trigger e uma função para calcular o total vendido, considerando as tabelas mencionadas: ``` CREATE OR REPLACE FUNCTION atualiza_total_vendas() RETURNS TRIGGER AS $$ BEGIN UPDATE total_vendas SET total_venda = total_venda + (NEW.preco * NEW.quantidade), t_produtos_vendidos = t_produtos_vendidos + NEW.quantidade WHERE id_produto = NEW.id_produto; RETURN NEW; END; $$ LANGUAGE plpgsql; CREATE TRIGGER trigger_atualiza_total_vendas AFTER INSERT ON vendas FOR EACH ROW EXECUTE FUNCTION atualiza_total_vendas(); ``` Explicando o código acima, a função `atualiza_total_vendas()` é criada para atualizar a tabela `total_vendas` sempre que uma nova venda é inserida na tabela `vendas`. A função recebe um objeto do tipo `TRIGGER` e retorna um objeto do mesmo tipo. A trigger `trigger_atualiza_total_vendas` é criada para executar a função `atualiza_total_vendas()` após cada inserção na tabela `vendas`. A cláusula `FOR EACH ROW` indica que a trigger deve ser executada para cada linha inserida na tabela. Dentro da função `atualiza_total_vendas()`, é feita uma atualização na tabela `total_vendas`, somando o valor da nova venda ao total de vendas do produto correspondente e incrementando o número de produtos vendidos. A cláusula `WHERE` é usada para selecionar a linha correspondente ao produto da nova venda. Espero ter ajudado!

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais

Outros materiais