Jump to content
adriano.nogueira

Log para gravar alterações

Recommended Posts

Bom dia.

    Sou novato aqui no fórum e gostaria de um auxílio na questão de backup.

    Já fiz várias pesquisas sobre o assunto e acho que não existe uma solução que eu acho que tinha que ter..

    Seguinte, preciso gravar log de alterações de tabelas, só que não queria fazer campo a campo..

    Gostaria de usar algo do tipo.

    SELECT column_name into campo
      FROM INFORMATION_SCHEMA.COLUMNS
    WHERE table_name = 'tbl_name'

   

     aí eu faria a comparação dinâmica

     if NEW.campo <> old.campo then

           insert log

           ou

           concatena set c_log = campo=>valor;

           e no final gravo uma string só no log

     end if;

 

     e com isso não corro o risto de incluir algum campo na tabela e não incluir no log

     seria uma solução mais inteligente do que comparar campo a campo.

 

Obrigado a todos.

At.

Adriano

Share this post


Link to post
Share on other sites

Não temnho certeza se vai funcionar mas no select invez de colocar o nome dos campos coloca *

 

exemplo

SELECT * FROM SUATABELA
 

Share this post


Link to post
Share on other sites

Que eu saiba MySql tem um audit log padrão , por que não o usa ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By mateus.andriollo
      Gostaria de saber se alguém tem uma trigger para fazer log de qualquer tipo de transação de dados em qualquer tabela do banco. Porém, preciso carregar um campo UserName que será setado a cada conexão via login php
      SET @UserName = 'ZeBala' Achei vários exemplos porém tenho q criar um trigger para cada tabela
       
      CREATE TRIGGER roles_audit_au AFTER UPDATE ON `<nome_tabela>` Existe uma forma de não ser direcionada?
    • By Juliana Amaral
      Boa noite,
       
      Sou nova em fórum de Programaço.
      Tenho 19 anos e sempre gostei muito de programação
      Desculpe se estiver no local errado
       
      Entrei em uma empresa de TI e fiquei  designada a fazer os backups colocar a fita e tirar a que foi feita  e em cada fita Lto tem um código gerado assim que o backup e feito
      eu pego esta fita  entro em um Excel com todos os setores da empresa e coloco o nome da fita em seu campo com a dia da semana+dia do mes e o codigo da fita
       
      Eu queria uma ajuda pois não sei nada de programação e quero impressionar minha chefe fazendo uma pagina em html e inserindo as informações e inserindo em um banco
       
      Alguém pode me ajudar?
      Segue um modelo só pra entenderem
       
      Agradeço se puderem me ajudar

    • By acneto.frc
      Bom dia a todos!
      Tenho uma rotina desenvolvida em Delphi onde eu gravo em uma tabela os campos alterados das tabelas do sistema.
      Preciso implementar essa rotina em javascript e não estou conseguindo obter os valores do campo alterado e o valor anterior (delta)
      É uma rotina muito útil para acompanhamento de operação do sitema
      Obrigado!

      begin
        DmCliente.CdsAlteracoes.Open;
       
        m_modificado := false;
       
        for i := 0 to CdsAtivo.Fields.Count - 1 do
          begin
            V := CdsAtivo.Fields.OldValue;
            V := VarType( V );
       
            if CdsAtivo.Fields.OldValue <> CdsAtivo.Fields.NewValue then
              begin
                m_modificado := true;
                with DmCliente.CdsAlteracoes do
                  begin
                    DmCliente.CdsAlteracoes.Append;
                    DmCliente.CdsAlteracoes.FieldByName('Alt_DtCadastro').AsString   := dateToStr( Date );
                    DmCliente.CdsAlteracoes.FieldByName('Alt_Horario').AsString      := TimeToStr( time() );
                    DmCliente.CdsAlteracoes.FieldByName('Alt_NomeTabela').AsString   := UpperCase(NomeTabela);
                    DmCliente.CdsAlteracoes.FieldByName('Alt_CampoChave').AsInteger  := CdsAtivo.Fields[0].OldValue;
                    DmCliente.CdsAlteracoes.FieldByName('Alt_NomeCampo').AsString    := CdsAtivo.Fields.FieldName;
       
                    Case CdsAtivo.Fields.DataType of   //   .FieldByName(Vle.Cells[ 0 , i ]).DataType of
                      ftString:
                      begin
                        if CdsAtivo.Fields.OldValue <> Null then
                          DmCliente.CdsAlteracoes.FieldByName('Alt_DadoOriginal').AsString := CdsAtivo.Fields.OldValue;
                        if CdsAtivo.Fields.NewValue <> Null then
                          DmCliente.CdsAlteracoes.FieldByName('Alt_DadoAlterado').AsString := CdsAtivo.Fields.NewValue;
                      end;
                    end;
       
                    DmCliente.CdsAlteracoes.FieldByName('Alt_NomeUsuario').AsString  := m_nomeusuario;
                    DmCliente.CdsAlteracoes.FieldByName('Alt_DtCadastro').AsDateTime := date();
                    DmCliente.CdsAlteracoes.FieldByName('Alt_Horario').AsString      := TimeToStr(time());
                    DmCliente.CdsAlteracoes.FieldByName('Alt_NomeMicro').AsString    := m_HostNome^.h_name;
                    DmCliente.CdsAlteracoes.FieldByName('Alt_IpMicro').AsString      := m_HostIp;
                    DmCliente.CdsAlteracoes.FieldByName('Usu_Codigo').AsInteger      := m_CodigoUsuario;
       
                    DmCliente.CdsAlteracoes.Post;
                  end;
              end;
          end;
       
        if m_modificado = true then
          DmCliente.CdsAlteracoes.ApplyUpdates(0);
       
        DmCliente.CdsAlteracoes.Close;
       
      end;
       
       
    • By luisfeliperm2
      Como posso estar recebendo backups todos os dias do banco de dados postgresql através do meu email ? Preciso fazer isso no Windows 2012
    • By Wanderson Moreira
      Bom dia
      dei uma pesquisada mais não estou conseguindo encontrar algo sobre o assunto

      é possível fazer exportação de um determinado banco de dados diariamente e de forma automática para backup com PHP?
       
      Obrigado
       
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.