Ir para conteúdo

Arquivado

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

marcel Costa

Trigger LOG TABELAS

Recommended Posts

Galera,

Depois de muito tempo. conseguir fazer a trigger de Log_tabelas. Agora, resta uma duvida. Como faço para que essa trigger se aplique em qualquer tabela do meu banco? sem eu ter que ir em cada tabela, e adicionar a trigger.

 

Obrigado a todos!

 

Segue a trigger abaixo:

 

create or replace function create_logs() returns boolean as $body$

declare

nome_tabela varchar;

tabela_log_nome varchar;

begin

 

for nome_tabela in select distinct relname from pg_stat_user_tables WHERE schemaname='public' loop

 

log_table_name := nome_tabela || '_log';

raise notice 'Criando Tabela Log de %', log_table_name;

execute 'create table ' || log_table_name || ' as select * from ' || nome_tabela;

execute 'alter table ' || log_table_name || ' add column operacao char';

execute 'alter table ' || log_table_name || ' add column data timestamp';

execute 'alter table ' || log_table_name || ' add column usuario varchar';

 

end loop;

return true;

end;

$body$ language plpgsql;

Compartilhar este post


Link para o post
Compartilhar em outros sites

No Oracle por exemplo tem de haver um objeto trigger para que cada tabela tenha o tratamento, uma solução que eu fiz foi fazer uma procedure que gera o código da trigger.

 

Vide.

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.