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
