Ir para conteúdo
Fórum Script Brasil
  • 0

Trigger e procedure para definição de valor minimo para venda.


Lucas P. Silveira

Pergunta

Sempre recorro ao script brasil para esclarecer minhas duvidas, porem desta vez não achei nada que solucionasse meu problema, então estou postando aqui para ver se alguém pode me ajudar (Se estiver na sessão errada por favor me corrijam)

Estou com o seguinte problema. Quero que seja definido o valor de venda com base no valor de compra de forma automática pelo sistema, porem esta dando um erro e não sei como resolver.

Banco:

create database Moto10;
use Moto10;
CREATE TABLE IF NOT EXISTS `Moto10`.`Produtos` (
`idProdutos` INT NOT NULL AUTO_INCREMENT,
`codigo` VARCHAR(45) NOT NULL,
`nome` VARCHAR(45) NOT NULL,
`referencia` VARCHAR(45) NULL,
`precoVenda` VARCHAR(45) NULL,
`precoCompra` VARCHAR(45) NULL,
`codigoDeBarras` VARCHAR(45) NULL,
PRIMARY KEY (`idProdutos`),
UNIQUE INDEX `codigo_UNIQUE` (`codigo` ASC),
UNIQUE INDEX `nome_UNIQUE` (`nome` ASC))
ENGINE = InnoDB

Trigger e Procedure:

DELIMITER //
drop procedure if exists AtualizaPrecoVenda //
CREATE PROCEDURE AtualizaPrecoVenda(preco_Compra float, id_prod int)
BEGIN
UPDATE Produtos SET precoVenda = precoCompra*1.8 WHERE idProdutos = id_prod;
END //
DELIMITER ;
DELIMITER //
drop trigger if exists depoisInsertProdutos //
CREATE TRIGGER `depoisInsertProdutos` AFTER INSERT ON `Produtos`
FOR EACH ROW BEGIN CALL AtualizaPrecoVenda(new.precoCompra,new.idProdutos);
END //
DELIMITER ;

Não esta funcionando creio eu que o erro esta no trigger pois o update por si só está funcionado.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

é uma regra do mysql não permitir que haja um cascateamento de gravações na mesma tabela usando um trigger.

ou seja, um insert ou update ou delete não pode fazer um outro insert ou delete ou update na mesma tabela acionado por um trigger.

A razão é evitar um auto dead lock na tabela em questão.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...