Fórum Criação de um Histórico de Alterações (log das tabelas) #401206
17/05/2011
0
Criei uma tabela chama histórico com a seguinte estrutura:
data (timestamp) - data e hora
login (varchar 10) - login do usuário
tabela (varchar 20) - nome da tabela
id (integer) - ID do registro
tipo (varchar 10) - tipo (insert/delete/update)
conteudo (varchar 0) - conteudo do registro
o que eu gostaria é de um loop com os campos para preenchimento do campo conteudo.
Esse campo CONTEUDO teria a seguinte forma:
id = 10
cnpj = 1245678912
data = 15/10/2010
descricao = teste de descricao
Eu imaginei algo assim
Só que não tenho nem idéia de como pegar a quantidade de campos nem de compará-la com o x do FOR, nem como fazer a comparação do IF nem as atribuições à variável.
É meu primeiro programa em PGSQL e estou apanhando muito com isso!
Alguém tem algo assim pronto ou que saiba como fazer para me ajudar?
Desde já agradeço a todos!
data (timestamp) - data e hora
login (varchar 10) - login do usuário
tabela (varchar 20) - nome da tabela
id (integer) - ID do registro
tipo (varchar 10) - tipo (insert/delete/update)
conteudo (varchar 0) - conteudo do registro
o que eu gostaria é de um loop com os campos para preenchimento do campo conteudo.
Esse campo CONTEUDO teria a seguinte forma:
id = 10
cnpj = 1245678912
data = 15/10/2010
descricao = teste de descricao
Eu imaginei algo assim
FOR x IN quantidade de campos If new.campo <> old.campo and tipo = 'update' svariavel = nome do campo || ' = ' || old.campo || ' / ' || new.campo || troca de linha else svariavel = nome do campo || ' = ' || new.campo || troca de linha end if x = x + 1 end loop INSERT INTO historico (data, login, tabela, id, tipo, conteudo) VALUES (now(), new.login, tabela, new.id, new.tipo, sVariavel);
Só que não tenho nem idéia de como pegar a quantidade de campos nem de compará-la com o x do FOR, nem como fazer a comparação do IF nem as atribuições à variável.
É meu primeiro programa em PGSQL e estou apanhando muito com isso!
Alguém tem algo assim pronto ou que saiba como fazer para me ajudar?
Desde já agradeço a todos!
Roberto Gugisch
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)