CREATE OR REPLACE FUNCTION veiculo.update_veiculo() RETURNS trigger AS $$
BEGIN
IF (OLD.valor_compra != NEW.valor_compra) THEN
PERFORM venda.calculosVenda(OLD.idvenda);
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
Essa função é chamada no UPDATE da tabela veiculo.veiculo
Quando eu modifico o valor de compra do veiculo, alguns valores na tabela
venda precisam mudar. Como impostos, comissão, lucro...
O problema é o seguinte, quando eu altero o valor_compra na tabela veículo
os dados na tabela venda não são atualizados.
1. Não há nada errado com a função venda.calculosVenda pois depois de
atualizar e perceber que nada mudou, eu fui manualmente e chamei a função
venda.calculosVenda e os dados foram atualizados corretamente com o novo
valor_compra.
2. O trigger está funcionando e chamando a função veiculo.update_veiculo e
além disso antes no lugar de PERFORM eu tinha um SELECT e quando eu tentava
atualizar eu recebia um erro informando que se eu quisesse descartar o
retorno eu deveria usar PERFORM. Logo conclui que a linha do PERFORM foi
executada.
3. Pensei que a a tabela veiculo não estivesse com o idvenda correto. Mas
está, fui manualmente na tabela veiculo e vi que o idvenda está correto.
Enfim, fiz todas essas verificações e não sei o motivo pelo qual quando
edito um veículo alterando seu valor_compra a minha função
venda.calculosVenda não atualizada minha venda.
--
View this message in context:
http://old.nabble.com/Problema-com-trigger-em-update-tp28129160p28129160.html
Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral