Pular para o conteúdo
  • Este tópico contém 19 respostas, 7 vozes e foi atualizado pela última vez 16 anos, 5 meses atrás por jspaulonci.
Visualizando 5 posts - 16 até 20 (de 20 do total)
  • Autor
    Posts
  • #89751
    rwarstat
    Participante

      Airton,
      Recomendo que tu faça assim:

      create or replace trigger trg_tabela_teste
      before insert on tabela_teste
      for each row
      begin

      if :new.estado = ‘SS’ then

      null;

      end if;

      end;

      Assim, quando o estado for igual a ‘SS” o registro não será incluído.
      O null é usado simplesmente para que tu tenha algo dentro o IF. E recomendo que tu comente bem esse código, pois pode ficar confuso.

      #89752
      airoosp
      Participante

        Mesmo utilizando o NULL o registro foi gravado.

        #89753
        armandoveloso
        Participante

          Airton,

          uma Check Constraint nessa coluna não resolve teu problema nao?

          []’s
          Armando Veloso.

          #89754
          rwarstat
          Participante

            E se fizesse o teste na aplicação, antes de mandar o comando de insert para o banco?

            if estado ‘SS” then
            insere no banco
            end if

            Dessa maneira é mais fácil e extremamente funcional.

            #89831
            jspaulonci
            Participante

              Se você retornar um RAISE da trigger para o procedimento que iniciou o insert na tabela, depois no programa que inicia o insert , você trata com Exception When others ou trata o erro do RAISE, trate o fluxo e contine o processo a partir da exception, falando assim parace fácil, acho interessante testar, de qualquer maneira o mais fácil é você tratar essa regra no próprio procedimento antes de fazer o insert.

              Abraços

              Spaulonci

            Visualizando 5 posts - 16 até 20 (de 20 do total)
            • Você deve fazer login para responder a este tópico.