Acho que aqui tem um bom exemplo disso:<br><br><a href="http://pgdocptbr.sourceforge.net/pg80/plpgsql-trigger.html">http://pgdocptbr.sourceforge.net/pg80/plpgsql-trigger.html</a><br><a href="http://www.postgresql.org/docs/8.4/interactive/plpgsql-trigger.html">http://www.postgresql.org/docs/8.4/interactive/plpgsql-trigger.html</a><br>
<br clear="all">Diego Moreira Carvalho <br><br>
<br><br><div class="gmail_quote">Em 1 de setembro de 2011 11:51, Pedro Costa <span dir="ltr">&lt;<a href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a>&gt;</span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    Caro Diego ajudou.<br>
    <br>
    Diga-me só uma coisa, existe alguma variável que armazene o tipo de
    operação (insert, update, delete)?<div><div></div><div class="h5"><br>
    <br>
    <br>
    <br>
    <br>
    <br>
    On 01-09-2011 13:28, Diego Moreira wrote:
    <blockquote type="cite">Bom dia Pedro,<br>
      <br>
      Este é um tema bem interessante, acredito que para todos que tem
      sobre sua responsabilidade uma base de dados que pode ser editada
      por várias pessoas.<br>
      Infelizmente ou felizmente aqui onde trabalho tenho uma EUquipe.
      Portanto, nunca senti a necessidade de implementar um mecanismo
      destes.... Mas já pensei e conversei com algumas pessoas sobre.<br>
      <br>
      Vai a minha sugestão:<br>
      <br>
      Criação de arquivo de log:<br>
      <br>
      Assim como algumas aplicações corporativas, tipo as bancárias que
      precisam manter um histórico das transações para cada conta, 
      acredito que uma solução interessante seria criar uma tabela que
      armazenasse estas informações ao invés de usar o log do PG.<br>
      É bem simples, basicamente funcionaria assim:<br>
      <br>
      Você teria uma tabela com os (possíveis) seguintes dados<br>
      ID; <br>
      USUÁRIO;  nome do usuário<br>
      DATAHORA; data e hora da alteração<br>
      OPERACAO; tipo de operação (REMOVE, INSERT, UPDATE)<br>
      TABLE; nome da tabela que esta sendo alterada<br>
      OLD_FEATURE; campo não deve ser obrigatória( para o casa de
      insert); Concatenação das colunas da tabela que esta sendo
      alterada<br>
      NEW_FEATURE; Concatenação das colunas da tabela que esta sendo
      alterada<br>
      <br>
      Vc criaria uma trigger para a tabela em que ocorre as edições que
      seria acionada toda da vez ocorresse alguma alteração (REMOVE,
      INSERT, UPDATE).<br>
      Com relação a oldFeature e newFeature, não coloquei geometry, por
      que pode ser interessante armazenar as alterações dos dados
      alfanuméricos tbm.<br>
      <br>
      Acho que a idéia é mais ou menos esta.<br>
      <br>
      Ah... Caso exista uma tabela com as informações de onde cada
      usuário pode editar vc pode testar isso primeiro... e não deixar
      inserir ou alterar por que está em uma área em que o usuário não
      tem permissão...<br>
      <br>
      Com relação ao backup... de uma olhada aqui<br>
      <a href="http://postgrecenter.pgopen.com.br/automatizando-rotinas-de-backup-e-vacuum-no-postgresql-crontab/" target="_blank">http://postgrecenter.pgopen.com.br/automatizando-rotinas-de-backup-e-vacuum-no-postgresql-crontab/</a><br>

      <br>
      Espero ter sido útil...<br>
      <br>
      <br clear="all">
      Diego Moreira Carvalho <br>
      <br>
      <br>
      <br>
      <div class="gmail_quote">Em 1 de setembro de 2011 08:21, Giovanni
        Manghi <span dir="ltr">&lt;<a href="mailto:giovanni.manghi@gmail.com" target="_blank">giovanni.manghi@gmail.com</a>&gt;</span>
        escreveu:<br>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div>&gt; . No entanto eu gostava de saber se é
            possível<br>
            &gt; configurar com o pgadmin III (o cliente que uso) ou
            pela shell (uso o<br>
            &gt; ubuntu) a criação de um arquivo log que memorize as
            alterações que cada<br>
            &gt; utilizador faz e também a que horas e dia. Pretendia
            também saber se é<br>
            &gt; possível agendar backups quando alteramos uma base de
            dados.<br>
            <br>
            <br>
          </div>
          <a href="http://www.postgresql.org/docs/8.4/static/runtime-config-logging.html" target="_blank">http://www.postgresql.org/docs/8.4/static/runtime-config-logging.html</a><br>
          <br>
          <a href="http://www.postgresql.org/docs/8.4/interactive/backup-dump.html" target="_blank">http://www.postgresql.org/docs/8.4/interactive/backup-dump.html</a><br>
          <br>
          <a href="http://www.postgresql.org/docs/8.4/static/triggers.html" target="_blank">http://www.postgresql.org/docs/8.4/static/triggers.html</a><br>
          <div>
            <div><br>
              <br>
              _______________________________________________<br>
              Portugal mailing list<br>
              <a href="mailto:Portugal@lists.osgeo.org" target="_blank">Portugal@lists.osgeo.org</a><br>
              <a href="http://lists.osgeo.org/mailman/listinfo/portugal" target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>
            </div>
          </div>
        </blockquote>
      </div>
      <br>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>_______________________________________________
Portugal mailing list
<a href="mailto:Portugal@lists.osgeo.org" target="_blank">Portugal@lists.osgeo.org</a>
<a href="http://lists.osgeo.org/mailman/listinfo/portugal" target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a>
</pre>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
Portugal mailing list<br>
<a href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/portugal" target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>
<br></blockquote></div><br>