Ir para conteúdo

Arquivado

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

Antonelli Santos

Trigger com IF OLD != NEW

Recommended Posts

Galera, beleza?

 

To precisando de ajuda na hora de montar um Trigger que salve o "Nome" do campo que foi alterado, seu valor antigo e seu valor novo. Como faço isso? Tentei da seguinte forma, porém deu erro:

CREATE TRIGGER test_alter
    AFTER UPDATE ON teste
    FOR EACH ROW BEGIN

    IF (OLD.Nome != NEW.Nome)
    THEN
      INSERT INTO `testing`.`alter_teste`(`Campo`, `Valor_N`, `Valor_O`)
      VALUES ('Nome', NEW.Nome, OLD.Nome);
    END IF;
END;

O que está errado?

IF UPDATE(Nome) 

Daria para usar isso?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema pode estar em uma das "pernas" o OLD ou o NEW estarem nulas, veja este tópico que deve te ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Motta!

 

À quem interessar, a solução foi a seguinte:

DELIMITER ///
CREATE TRIGGER t_a_u
AFTER UPDATE ON a1
FOR EACH ROW 
  BEGIN
    IF
      !(OLD.a <=> NEW.a)
    THEN
      INSERT INTO a2 (Campo, Valor) VALUES ('a', NEW.a);
    END IF;
  END;
///
DELIMITER ;

Porém esbarrei em outro erro, e acho que não será tão simples de resolver.

Estou fazendo isso tudo pois quero salvar um "log de alterações" das outras tabelas.

Por exemplo: tenho uma tabela de clientes com id, nome, idade, sexo, toda alteração feita nessa tabela deverá ser salva em uma outra com a estrutura definida por id, id_usuario, campo_alterado, novo_valor, antigo_valor. Há como fazer isso usando apenas comandos do SQL sem usar o PHP (no meu caso)?

 

Ou teria que criar uma "tabela de clientes backup" com a mesma estrutura e mandar o trigger clonar tudo lá?

 

Desde já agradeço,

Att.,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma tabela com a seguinte estrutura

 

Tabela,

Campo,

Valor_anterior,

Data

 

O valor_anterior seria do tipo char para guardar qq valor , na gravação seria convertido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, mais uma vez, obrigado.

 

O problema que estou encontrando é na hora de descobrir qual o campo que foi alterado.

No meu caso, as tabelas tem cerca de 20 campos. Pela minha lógica citada acima eu teria que fazer 20 'IFs', certo? Ou há uma maneira de identificar qual campo da tabela foi alterado?

Teria que fazer IF > THEN > ELSE IF > THEN > (...) > ELSE > THEN? Não há como criar mais de um trigger com o mesmo event na tabela, certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esbarrei em outro problema e vim tentar solucionar com vocês, denovo! :yes:

Adicionei o trigger da seguinte forma:

    DELIMITER ///
    CREATE TRIGGER alter_p_empresa
    AFTER UPDATE ON p_empresa
    FOR EACH ROW 
    BEGIN
    	IF !(OLD.bairro <=> NEW.bairro)	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'bairro', OLD.bairro, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.celular <=> NEW.celular) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'celular', OLD.celular, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.cep <=> NEW.cep) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'cep', OLD.cep, NOW(), NEW.ID_usuario_editor);
       	ELSEIF !(OLD.cidade <=> NEW.cidade) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'cidade', OLD.cidade, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.cnpj <=> NEW.cnpj)	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'cnpj', OLD.cnpj, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.codigo_acesso_sn <=> NEW.codigo_acesso_sn) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'codigo_acesso_sn', OLD.codigo_acesso_sn, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.complemento <=> NEW.complemento) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'complemento', OLD.complemento, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.cpf_responsavel <=> NEW.cpf_responsavel) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'cpf_responsavel', OLD.cpf_responsavel, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.email <=> NEW.email)THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'email', OLD.email, NOW(), NEW.ID_usuario_editor);
       	ELSEIF !(OLD.email_responsavel <=> NEW.email_responsavel) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'email_responsavel', OLD.email_responsavel, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.enquadramento <=> NEW.enquadramento) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'enquadramento', OLD.enquadramento, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.ID_fortes <=> NEW.ID_fortes) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'ID_fortes', OLD.ID_fortes, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.inativa <=> NEW.inativa)
    	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'inativa', OLD.inativa, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.inscricao_estadual <=> NEW.inscricao_estadual)	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'inscricao_estadual', OLD.inscricao_estadual, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.inscricao_municipal <=> NEW.inscricao_municipal) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'inscricao_municipal', OLD.inscricao_municipal, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.login_nfe <=> NEW.login_nfe) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'login_nfe', OLD.login_nfe, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.logradouro <=> NEW.logradouro) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'logradouro', OLD.logradouro, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.nome_fantasia <=> NEW.nome_fantasia) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'nome_fantasia', OLD.nome_fantasia, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.numero <=> NEW.numero) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'numero', OLD.numero, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.opcao_tributaria <=> NEW.opcao_tributaria) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'opcao_tributaria', OLD.opcao_tributaria, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.razao_social <=> NEW.razao_social) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'razao_social', OLD.razao_social, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.senha_acesso_sn <=> NEW.senha_acesso_sn) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'senha_acesso_sn', OLD.senha_acesso_sn, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.senha_nfe <=> NEW.senha_nfe) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'senha_nfe', OLD.senha_nfe, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.telefone <=> NEW.telefone)	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'telefone', OLD.telefone, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.telefone_responsavel <=> NEW.telefone_responsavel)	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'telefone_responsavel', OLD.telefone_responsavel, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.tipo <=> NEW.tipo) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'tipo', OLD.tipo, NOW(), NEW.ID_usuario_editor);
        ELSEIF !(OLD.uf <=> NEW.uf)	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'uf', OLD.uf, NOW(), NEW.ID_usuario_editor);
    	END IF;
    END;
    ///
    DELIMITER ;

E funcionou, porém esbarrei no seguinte problema:

- Ele só grava um dos campos que foram alterados.

 

Testei dessa outra forma:

    DELIMITER ///
    CREATE TRIGGER alter_p_empresa
    AFTER UPDATE ON p_empresa
    FOR EACH ROW 
    BEGIN
    	IF !(OLD.bairro <=> NEW.bairro)	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'bairro', OLD.bairro, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.celular <=> NEW.celular) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'celular', OLD.celular, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.cep <=> NEW.cep) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'cep', OLD.cep, NOW(), NEW.ID_usuario_editor);
       	END IF;
        IF !(OLD.cidade <=> NEW.cidade) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'cidade', OLD.cidade, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.cnpj <=> NEW.cnpj)	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'cnpj', OLD.cnpj, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.codigo_acesso_sn <=> NEW.codigo_acesso_sn) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'codigo_acesso_sn', OLD.codigo_acesso_sn, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.complemento <=> NEW.complemento) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'complemento', OLD.complemento, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.cpf_responsavel <=> NEW.cpf_responsavel) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'cpf_responsavel', OLD.cpf_responsavel, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.email <=> NEW.email)THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'email', OLD.email, NOW(), NEW.ID_usuario_editor);
       	END IF;
        IF !(OLD.email_responsavel <=> NEW.email_responsavel) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'email_responsavel', OLD.email_responsavel, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.enquadramento <=> NEW.enquadramento) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'enquadramento', OLD.enquadramento, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.ID_fortes <=> NEW.ID_fortes) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'ID_fortes', OLD.ID_fortes, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.inativa <=> NEW.inativa)
    	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'inativa', OLD.inativa, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.inscricao_estadual <=> NEW.inscricao_estadual)	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'inscricao_estadual', OLD.inscricao_estadual, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.inscricao_municipal <=> NEW.inscricao_municipal) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'inscricao_municipal', OLD.inscricao_municipal, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.login_nfe <=> NEW.login_nfe) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'login_nfe', OLD.login_nfe, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.logradouro <=> NEW.logradouro) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'logradouro', OLD.logradouro, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.nome_fantasia <=> NEW.nome_fantasia) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'nome_fantasia', OLD.nome_fantasia, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.numero <=> NEW.numero) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'numero', OLD.numero, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.opcao_tributaria <=> NEW.opcao_tributaria) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'opcao_tributaria', OLD.opcao_tributaria, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.razao_social <=> NEW.razao_social) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'razao_social', OLD.razao_social, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.senha_acesso_sn <=> NEW.senha_acesso_sn) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'senha_acesso_sn', OLD.senha_acesso_sn, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.senha_nfe <=> NEW.senha_nfe) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'senha_nfe', OLD.senha_nfe, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.telefone <=> NEW.telefone)	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'telefone', OLD.telefone, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.telefone_responsavel <=> NEW.telefone_responsavel)	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'telefone_responsavel', OLD.telefone_responsavel, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.tipo <=> NEW.tipo) THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'tipo', OLD.tipo, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF !(OLD.uf <=> NEW.uf)	THEN
        	INSERT INTO a_p_empresa (ID_empresa, campo, valor_alterado, data_alteracao, ID_usuario) VALUES (OLD.ID, 'uf', OLD.uf, NOW(), NEW.ID_usuario_editor);
    	END IF;
    END;
    ///
    DELIMITER ;

E não acontece nada! :no:

Acho que o primeiro "END IF" já encerra todos, certo? Há como resolver? Se eu fizer isso no meu APP, ao invés de ser diretamente no banco, pode ficar sobrecarregando o mesmo?

 

EDIT 1: Na verdade, o segundo modo também só insere o "primeiro modificado".

 

EDIT 2: Consegui resolver!

Solução:

    DELIMITER ///
    CREATE TRIGGER alter_p_empresa
    AFTER UPDATE ON p_empresa
    FOR EACH ROW 
    BEGIN
    	IF (OLD.bairro <> NEW.bairro) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'bairro', OLD.bairro, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.celular <> NEW.celular) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'celular', OLD.celular, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.cep <> NEW.cep) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'cep', OLD.cep, NOW(), NEW.ID_usuario_editor);
       	END IF;
        IF (OLD.cidade <> NEW.cidade) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'cidade', OLD.cidade, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.cnpj <> NEW.cnpj) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'cnpj', OLD.cnpj, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.codigo_acesso_sn <> NEW.codigo_acesso_sn) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'codigo_acesso_sn', OLD.codigo_acesso_sn, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.complemento <> NEW.complemento) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'complemento', OLD.complemento, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.cpf_responsavel <> NEW.cpf_responsavel) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'cpf_responsavel', OLD.cpf_responsavel, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.email <> NEW.email) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'email', OLD.email, NOW(), NEW.ID_usuario_editor);
       	END IF;
        IF (OLD.email_responsavel <> NEW.email_responsavel) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'email_responsavel', OLD.email_responsavel, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.enquadramento <> NEW.enquadramento) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'enquadramento', OLD.enquadramento, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.ID_fortes <> NEW.ID_fortes) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'ID_fortes', OLD.ID_fortes, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.inativa <> NEW.inativa) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'inativa', OLD.inativa, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.inscricao_estadual <> NEW.inscricao_estadual) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'inscricao_estadual', OLD.inscricao_estadual, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.inscricao_municipal <> NEW.inscricao_municipal) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'inscricao_municipal', OLD.inscricao_municipal, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.login_nfe <> NEW.login_nfe) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'login_nfe', OLD.login_nfe, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.logradouro <> NEW.logradouro) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'logradouro', OLD.logradouro, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.nome_fantasia <> NEW.nome_fantasia) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'nome_fantasia', OLD.nome_fantasia, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.numero <> NEW.numero) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'numero', OLD.numero, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.opcao_tributaria <> NEW.opcao_tributaria) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'opcao_tributaria', OLD.opcao_tributaria, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.razao_social <> NEW.razao_social) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'razao_social', OLD.razao_social, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.senha_acesso_sn <> NEW.senha_acesso_sn) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'senha_acesso_sn', OLD.senha_acesso_sn, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.senha_nfe <> NEW.senha_nfe) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'senha_nfe', OLD.senha_nfe, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.telefone <> NEW.telefone) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'telefone', OLD.telefone, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.telefone_responsavel <> NEW.telefone_responsavel) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'telefone_responsavel', OLD.telefone_responsavel, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.tipo <> NEW.tipo) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo, valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'tipo', OLD.tipo, NOW(), NEW.ID_usuario_editor);
        END IF;
        IF (OLD.uf <> NEW.uf) THEN
        	INSERT INTO a_p_empresa (ID_empresa, tipo_de_alteracao, campo,  valor_alterado, data_da_alteracao, ID_usuario) VALUES (OLD.ID, 'update', 'update', 'uf', OLD.uf, NOW(), NEW.ID_usuario_editor);
    	END IF;
    END;
    ///
    DELIMITER ;

Obrigado Motta, de verdade.

 

Espero que ajude caso alguém precise.

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.