jerfeson 1 Denunciar post Postado Junho 13, 2014 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
Motta 645 Denunciar post Postado Junho 13, 2014 Pq o insert !? Compartilhar este post Link para o post Compartilhar em outros sites
jerfeson 1 Denunciar post Postado Junho 13, 2014 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