Você pode utilizar uma trigger para isso, mas, de maneira geral, é recomendável evitar triggers devido a alguns aspectos negativos associados a eles.
No entanto, você realmente precisa atualizar essas colunas diretamente? Ou melhor, você realmente precisa dessas colunas? Se o objetivo é saber o total e a média das vendas, o banco de dados já oferece funções que calculam esses valores, como SUM() e AVG().
Caso você realmente precise dessas colunas (talvez por questões de performance) e não queira usar triggers, você terá que lidar com dois problemas:
-
Consistência: Os resultados precisam estar consistentes. A maneira clássica de garantir essa consistência é através de transações.
-
Sempre atualizar o total e a média: Você terá que garantir que, toda vez que manipular a tabela
vendedor
, as colunastotal_de_vendas
emedia_de_vendas
sejam atualizadas. A abordagem clássica para garantir isso seria colocar as operações da tabelavendedor
por trás de uma API, onde o código responsável por atualizar as colunas seja executado sempre que necessário.