Desde já obrigado a ambos, pois deram-me duas ideias. Realmente não sei muito bem o que adoptar, por agora. Já tenho a base de dados terminada e não me apetecia mexer muito mais nela, em relação á auditoria tenho os 3 campos que referi em todas as tabelas.
Com a solução da tabela única fica tudo centralizado, tem o senão de ser mais difícil fazer SELECT's ao campo DADOS, com a solução de espelhar todas as tabelas é mais fácil fazer SELECT's, mas vai-me dar mais um dia de trabalho espelhar todas as tabelas... Vou pensar neste assunto seriamente enquanto durmo... Mais uma vez obrigado. Cumprimentos, On Sat, Dec 12, 2009 at 12:24 AM, Lucas Souza <lucassouzadav...@gmail.com>wrote: > > > 2009/12/11 Tiago Adami <adam...@gmail.com> > >> 2009/12/11 Andre Lopes <lopes80an...@gmail.com>: >> > Boas, >> > >> >> ... >> > >> > A minha pergunta... Como fazem auditoria a DELETE's? >> > > > Oi Andre, vou te passar um exemplo da faculdade :) (foi feito para o > Oracle, mas espero que te de uma ideia e te ajude ;) > > > CREATE TABLE AUDITORIA ( > TABELA VARCHAR2(50) NOT NULL, > DATA DATE NOT NULL, > OPERACAO CHAR(1) NOT NULL, > USUARIO VARCHAR2(50) NOT NULL, > DADOS VARCHAR2(2000) NOT NULL > ); > > > CREATE TRIGGER TRG_AUDIT_EMPREGADO > AFTER DELETE OR INSERT OR UPDATE > ON EMPREGADO > FOR EACH ROW > DECLARE > DADOS VARCHAR2(2000); > BEGIN > IF DELETING THEN > DADOS := 'CÓDIGO : '|| :OLD.CODEMP || ‘ NOME : '|| :OLD.NOME || > ‘ SALÁRIO : '|| :OLD.SALARIO; > INSERT INTO AUDITORIA VALUES('EMPREGADO',SYSDATE,'D',USER,DADOS); > END IF; > > IF INSERTING THEN > DADOS := 'CÓDIGO : '|| :NEW.CODEMP || ‘ NOME : '|| :NEW.NOME > || ‘ SALÁRIO : '|| :NEW.SALARIO; > INSERT INTO AUDITORIA VALUES('EMPREGADO',SYSDATE,'I',USER,DADOS); > END IF; > > IF UPDATING THEN > DADOS := 'CÓDIGO OLD: '|| :OLD.CODEMP || ‘ NOME OLD: '|| :OLD.NOME > || ‘ SALÁRIO OLD: '|| :OLD.SALARIO || > 'CÓDIGO NEW: '|| :NEW.CODEMP || ‘ NOME NEW: '|| :NEW.NOME > || ‘ SALÁRIO NEW: '|| :NEW.SALARIO; > INSERT INTO AUDITORIA VALUES('EMPREGADO',SYSDATE,'U',USER,DADOS); > END > IF; > 32 > END; > > > -- > Lucas de Souza D'Ávila > Graduando em Sistemas de Informação - CV Lattes: > http://lattes.cnpq.br/9245658982061645 > > http://twitter.com/lucasdsd > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral