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

Criando Trigger


Diego Canindé

Pergunta

Estou criando essa trigger:

create trigger tg_insert_saidaestoque after insert on saidaestoque
for each row
begin
   update cliente cli 
      set cli.dtultcompra = date, cli.cdvendedor = new.cdvendedor
   where (cli.cdcliente = new.cdcliente) and ((cli.dtultcompra < new.dtsaida) or (cli.dtultcompra is null));
   if new.nrorcamento > 0 then
   begin
      update orcamento orc 
         set orc.status = 1 
      where (orc.nrorcamento = new.nrocamento);
   end if;
end;

Sendo que estar dando erro de SINTAXE e não estou conseguindo resolver, onde estar errado, alguém pode dar uma ajuda aí?

Atenciosamente,

Diego

Editado por Denis Courcy
Ajuste do código para melhorar wntendimento
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Oi, 'Diego Canindé'

Aparentemente o erro pode estar na pontuação da última linha.

Por padrão, quando escrevemos uma procedure ou trigger avisamos o motor do banco que o caractere para pontuação derá trocado. Então, escrevemos o cídigo usando o ponto e virgula normal e, para fechar a procedure/trigger informamos o caracter usado como substituição. O último comando é enviarmos ao motor mo MySQL que o caracter delimitador de comandos voltará a ser o ponto e vírgula. Exemplo, usando seu código:

DELIMITER $$;

DROP TRIGGER `saidaestoque`$$

create trigger `tg_insert_saidaestoque` after insert on `saidaestoque`
for each row
begin
   update cliente cli 
      set cli.dtultcompra = date, cli.cdvendedor = new.cdvendedor
   where (cli.cdcliente = new.cdcliente) and ((cli.dtultcompra < new.dtsaida) or (cli.dtultcompra is null));
   if new.nrorcamento > 0 then
   begin
      update orcamento orc 
         set orc.status = 1 
      where (orc.nrorcamento = new.nrocamento);
   end if;
END$$

DELIMITER;$$

No exemplo acima informei ao motor do MySQl que o caracter delimitedor de linha de comando será o "$$".

Dentro do trigger informo o caracter ";"

No final da criação do trigger informo o caracter "$$"

E, por último, informo a nova mudança do caracter delimitador voltando a ser o ";"

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
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...