Pessoal, tenho a seguinte situação:

Vou tentar colocar de um modo simples:

TRANSACAO = true; // inicia a transação
conta = 0;

while (true) {
    
    conta = conta+1;

    ... codigo

    if (erro){
        ROOLBACK       
        TRANSACAO = true; // Reinicia a transação, não sai do while
    }else{
        if (conta == 1000){
            COMMIT
            conta = 0;
            TRANSACAO = true; // Reinicia a transação
        }
    }

}

if (TRANSACAO){
    COMMIT
}

Esse é uma rotina muito comum, mas estou numa duvida, preciso que o sistema 
efetive os registros que não derem erro, mas como veem ele só vai efetivar a 
cada 1mil.
Se der erro dentre esse 1mil perco o que foi feito atras por causa do rollBack
Teria como isolar o rollBack a apenas o registro que deu erro?
Eu não queria dar Commit a cada registro, pois fica lento os Update ou Inserts
Obs: Estou dando Commit a cada 1mil pra não carregar muito a memoria tambem, 
mas dependendo esse numero poderá subir depois.


Marcelo

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a