Jump to content
Fórum Script Brasil
  • 0

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


Jordano Cherobim

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...