Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dimiguel

Erro desconhecido ao criar trigger

Recommended Posts

Estou tentando criar uma trigger para auditar uma tabela, da seguinte maneira:

 

CREATE TRIGGER log_farmacias AFTER UPDATE ON farmacias
  FOR EACH ROW
    BEGIN
     INSERT INTO farmacia_logs SET
       farmacia_id = OLD.id,
       id_string = OLD.id_string,
       estado_id = OLD.estado_id,
       cidade_id = OLD.cidade_id,
       nome = OLD.nome,
       endereco = OLD.endereco,
       numero = OLD.numero,
       complemento = OLD.complemento,
       bairro = OLD.bairro,
       email = OLD.email,
       site = OLD.site,
       nao_fecha = OLD.nao_fecha,
       created = NOW();
    END;

 

Ao executar, é retornado a mensagem de erro que existe um problema na linha 17 (created = NOW() ;) mas não tenho noção do que possa ser. Alguém pode me dar uma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além do que o Motta já disse.

 

Faça assim:

 

DELIMITER //
CREATE TRIGGER 
  log_farmacias AFTER UPDATE ON farmacias 
  FOR EACH ROW BEGIN 
      ...
  END;
//
DELIMITER ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, @Prog! Mais uma vez você me salvando..rs.

 

Agora, aproveitando o gancho, pra verificar os dados que foram alterados, tenho que fazer um IF pra cada campo ou existe uma formulá "mágica" pra isso?

 

Obrigado, mais uma vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verificar os dados que foram alterados? Pq quer fazer isso numa Trigger?

 

Desculpe, mas acho que precisamos entender melhor o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verificar os dados que foram alterados? Pq quer fazer isso numa Trigger?

 

Desculpe, mas acho que precisamos entender melhor o problema.

 

É que, neste caso, estou gravando todos os dados da tabela "farmácias", independente dele ter sido alterado ou não. O que eu gostaria é gravar somente os dados que foram realmente alterados (ou é viagem minha?). Ou seja, se o endereço da farmácia foi alterado, grava somente o novo valor para o campo "endereco" e os demais fica como "null". Ficou claro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.