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

(Resolvido) Verificação antes de Inserir - Trigger


Jordano Cherobim

Pergunta

Olá, estou com uma dúvida. Quero,antes de inserir um novo registro, que ele verifique se consta em estoque a quantidade de matéria prima que sera utilizada. Se houver, ele pode inserir.

Porém ao fazer uma trigger disso, ela fica recursiva, pois irá inserir na mesma tabela. alguém tem alguma ideia de como proceder? Obrigado.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

A melhor maneira para realizar esta inserção é através de uma storage procedure.

segue um exemplo:

DELIMITER $$;

DROP PROCEDURE IF EXISTS `seubancodedados`.`insert_estoque`$$

CREATE PROCEDURE `insert_estoque`(lista de parametros )
BEGIN
   DECLARE msg VARCHAR(1000) DEFAULT "sem mensagem";
   DECLARE excecao SMALLINT DEFAULT 0;
   DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
   IF (teste se parametros vieram corretos) THEN
      SET excecao = 1;
      SET msg = "Erro na passagem de parametros"; -- mensagem de erro
   ELSE
	  IF (Testes que você quer realizar) THEN
	     SET msg = "Erro .......";  
		 SET excecao = 1;
      ELSE
         START TRANSACTION;
         /*Inclusao*/
         INSERT INTO minhatabela(lista de campos)
         VALUES (parametros e/ou constantes e/ou variaveis);
         IF excecao = 1 THEN
            SET msg = "PLSQL: Erro ao inserir na tabela";
            ROLLBACK;
         END IF;
      END IF;
   END IF;
   /*Se tudo deu certo, entao finaliza confirmando a gravacao.*/
   IF excecao <> 1 THEN
      COMMIT;
      SET msg = "PLSQL: Registro Incluido com sucesso";
   END IF;
   SELECT msg AS msg;
END$$

DELIMITER ;$$
Link para o comentário
Compartilhar em outros sites

  • 0

Que linguagem você usa?

Eu uso Delphi e passei a usar um componente para storage procedure no lugar de componente para sql na hora de gravar

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...