Carlos Madsen escreveu:
> Olá pessoal, estou com o seguinte problema tenho uma tabela chamada 
> "livro" e tenho de armazenar todas as alterações que esta tabela sobre 
> em uma tabela "log", daí pensei em fazer uma trigger para ser chamada 
> antes do update, até ai tudo bem, mas o problema é que tenho de 
> armazenar também o login do usuário atual, coluna que não existe em 
> "livro". Tentei fazer algo do gênero mas não fui feliz:
> 
> 
> CREATE OR REPLACE FUNCTION altera_livro()
> 
> RETURNS "trigger" AS
> 
> $BODY$
> 
> begin
> 
> insert log (login,data,autor) values (NEW.login,current_date,NEW.autor); 
> -- +- assim
> 
> 
> NEW.login=null; --para não afetar o update
> 
> return NEW;
> 
> end;
> 
> $BODY$
> 
> LANGUAGE 'plpgsql' VOLATILE;
> 
> 
> Chamado no update:
> 
> update livro set
> 
> login='carlos', -- essa coluna não existe na tabela livro !!
> 
> titulo='Dom Casmurro',
> 
> autor='Machado de Assis' where chave='654';
> 
> 
> Alguém tem alguma idéia se algo do gênero é possível?
> 


Veja "Example 38-3. A PL/pgSQL Trigger Procedure For Auditing" em:
http://www.postgresql.org/docs/current/interactive/plpgsql-trigger.html

e "current_user" em:
http://www.postgresql.org/docs/current/interactive/functions-info.html

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a