Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jerfeson

Stored Procedures

Recommended Posts

O que há de errado com esse procedimento, a ideia é mostrar a mensagem de o valor que ele digitar for maior que o valor que já está no banco.... mas o mysql retorna a mensagem de que estou ferindo a FK

DELIMITER $$
DROP PROCEDURE IF EXISTS P_VENDA_PRO $$
CREATE PROCEDURE P_VENDA_PRO
(IN PFkVenda INT(10), PFkProduto INT(10), PqtdProduto INT(10), PsubTotal DECIMAL (10,2), OUT msg VARCHAR(255))
BEGIN
DECLARE VarQtdProduto INT(10);
select sql_calc_found_rows idVenda from venda where idVenda = PFkVenda;
if(select found_rows() = 0 )then
set msg = 'Venda Já Cadastrada';
select msg;
ELSE 
SELECT * FROM venda_pro;
INSERT INTO venda_pro VALUES (PFkVenda, PFkProduto, PqtdProduto, PsubTotal);
select  qtdEstoque from produto where qtdEstoque = PqtdProduto;
if(select PqtdProduto > PqtdProduto)then
set msg = 'QUANTIDADE INDISPONÍVEL';
select msg;
END IF;
SELECT * FROM venda_pro;
	
END IF;
END $$
DELIMITER ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq o insert !?

 

Eu resolvi aqui.., o problema era a ordem... a verificação é antes d insert...

 

Essa tabela é o registro da compra... ou seja ela pega o id da venda e o id do produto assim com sua quantidade... mas precisava verificar a quantidade antes de inserir pq se não tiver produto em estoque não insere entende ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.