Decrementar e imcrementar quantidade estoque usando trigger mysql

olá amigos!
Em primeiro lugar não sei se é exatamente aqui que posso colocar meu problema se não for que mudem para o topico correto.

Estou com um pequeno problema com relação a baixa de estoque.
criei uma tela onde dou a saida dos produtos e um botão que importa os produtos um de cada vez depois coloco a quantidade de cada produto e calculo o valor, até aqui tudo bem , salvo a saida e na tabela de saida fica tudo certinho.

Meu problema esta na baixa da quantidade do estoque, não sei como implementar isso no java tentei criar uma trigger no mysql mas se adiciono um produto apenas na tela saida de produtos e salvo ele da baixa normalmente na quantidade do produto, mas se adiciono mais de um produto e salvo ele da baixa apenas na quantidade de apenas um produto na tabela e nos demais ele deixa null ou (0), alquem poderia me dizer como criar trigger no mysql para varios produtos ou se no codigo da saida ele não enxerga todos os produtos que adiciono, pois o que percebi é que no banco dando baixa em apenas um produto por vez ele decrementa corretamente e no aplicativo se adiciono apenas um produto ele tambem funciona mas de adiciono mais de um produto ele não decrementa corretamente nos demais .

segue a trigger que criei:

DELIMITER ;

DELIMITER $$

DROP TRIGGER /*!50032 IF EXISTS */ siscorjava.SAIDA_MATERIAL$$

CREATE
/*!50017 DEFINER = ‘root’@‘localhost’ */

TRIGGER siscorjava.SAIDA_MATERIAL AFTER INSERT ON siscorjava.saida_det

FOR EACH ROW BEGIN

UPDATE SISCORJAVA.MATERIAL_CONSUMO AS P

             SET P.QTDE_MATERIAL_CONSUMO = P.QTDE_MATERIAL_CONSUMO - NEW.QTDE_SAIDA_DET 
	
            
             WHERE P.COD_MATERIAL_CONSUMO=NEW.COD_MATERIAL_CONSUMO;

END;

$$

DELIMITER ;

desculpem se não fui claro caso precisem coloco o codigo da saida .

Um abraço!

Olá amigos!

continuo com o problema, alguem ai poderia me dar alguma dica?

não sei se fui bem claro na pergunta, mas vou repetir a questão.

desenvolvi um aplicativo java desktop onde fiz uma tela para saida de produtos, está tela está vinculada ao meu banco de dados mysql tabelas saida_cab e saida_det, criei um botão para inserir nova saida onde coloco a data e um botão para importar os produtos, vou importando produto por produto e a quantidade coloco manualmente criei um botão para calcular os valores multiplicar as quantidades e somar os valores, até aqui tudo bem clico no botão salvar e tudo beleza . vou no banco de dados e nas tabelas saida_cab tenho o codigo da saida, o valor unitario e o valor total, na saida_det tenho o codigo da saida o codigo do produto, o codigo do fornecedor a quantidade de saida de cada produto inserido o valor unitário e o valor total, tudo beleza, mas gostaria de dar baixa na quantidade de outra tabela a tabela material_consumo. sei que seria mais facil e dizem que é bem melhor deixar o proprio banco de dados se encarregar disso criando uma trigger que faça isso automaticamente sem precisar ficar criando codigos no aplicativo para isso. Então criei uma trigger para fazer isso automaticamente, mas percebi que ela não está fazendo o serviço para mais de um produto inserido na saida_det.

trigger criada:
DELIMITER $$

DROP TRIGGER /*!50032 IF EXISTS */ siscorjava.SAIDA_MATERIAL$$

CREATE
/*!50017 DEFINER = ‘root’@‘localhost’ */

TRIGGER siscorjava.SAIDA_MATERIAL AFTER INSERT ON siscorjava.saida_det

FOR EACH ROW BEGIN

UPDATE SISCORJAVA.MATERIAL_CONSUMO AS P

             SET P.QTDE_MATERIAL_CONSUMO = P.QTDE_MATERIAL_CONSUMO - NEW.QTDE_SAIDA_DET 
	
            
             WHERE P.COD_MATERIAL_CONSUMO=NEW.COD_MATERIAL_CONSUMO;

END;

$$

DELIMITER ;

não sei se essa trigger está correta mas o problema que acontece é o seguinte:

se importo um produto apenas na saida_det e coloco a quantidade de saida exemplo importo papel sulfite e coloco a quantidade de 5 peças e na tabela material_consumo tenho a quantidade de 50 peças a trigger funciona normalmente decrementado da quantidade da tabela material_consumo 5 peças ficando com o total de 45 peças, mas se importo mais de um produto exemplo papel_sulfite, caneta bic preta e caneta bic azul colocando as quantidades de saida .Exemplo coloco papel sulfite 5 peças, caneta bic preta 3 peças e caneta bic azul 2 peças a trigger apenas da baixa corretamente em apenas um produto e pelo que percebi no ultimo importado deixando os demais como nullos apagando a quantidade que existia no estoque na tabela material_consumo, o que me intriga é que nas tabelas da saida_det está tudo certinho, o bug ou erro está na tabela material_consumo coluna quantidade onde como já disse ele exclui a quantidade que tem no estoque.

desculpem a extensão do texto e espero que me ajudem.

Um abraço.

Olá amigos!

A respeito da questão acima já resolvi, a trigger está correta o erro estava na importação dos produtos, pois verifiquei que a trigger acima estava sendo disparada no momento da importação, onde na importação dos produtos que importo um a um não estava colocando a quantidade e importava o proximo sendo que no ultimo antes de salvar colocava as quantidades para depois salvar, com isso a trigger deixava nullo(0) os primeiros produtos importados e só validava o ultimo.

Sendo assim vi que importanto o primeiro produto antes de importar o proximo coloco a quantidade que vou dar baixa no estoque e assim sucessivamente, e no ultimo produto clicava em salvar apos colocar a quantidade.

então vi que está funcionando normalmente.

não era o que esperava, pois eu acho que o correto seria no momento em que clicar no botão salvar, pois se no final antes de salvar, a pessoa desiste da saida e clicava no botão cancelar e nada teria se alterado e não é o que acontece. se alquem tiver alguma ideia pra me auxiliar agradeço muito.

Um abraço a todos.