> Mas se acontecer um erro a nível de postgres, tipo, inserindo o registro em
> vendas_parcelas com um campo inexistente na tabela, o postgres retorna um
> erro, mas mesmo eu enviando um ROLLBACK, o que já foi gravado fica gravado,
> a venda fica incompleta. Ou seja, quando há algum erro de dados que eu
> detecto na minha aplicação, envio um ROLLBACK e toda a operação é cancelada,
> mas quando ocorre um erro de sintaxe ou outro equivalente, o ROLLBACK não
> cancela o que já foi gravado.

Não entendi.
Um ROLLBACK sempre desfaz toda a transação.
Certos tipos de erros fazem com que o PostgreSQL faça automaticamente
o ROLLBACK e invalide tudo por você.

> Isto tem causado alguns transtornos para mim e para meus clientes.
>
> Porque isso acontece? Há uma solução pra isso?

Tem certeza que você está fazendo corretamente o tratamento da transação?
Qual a linguagem que está utilizando?
Sua biblioteca de conexão ao SGBD, ORM, driver JDBC ou outra camada
entre sua aplicação e o banco não está em modo autocommit?

[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a