Re: 25P02, current transaction is aborted, commands ignored
От | Oliver Jowett |
---|---|
Тема | Re: 25P02, current transaction is aborted, commands ignored |
Дата | |
Msg-id | 443072A9.4090204@opencloud.com обсуждение исходный текст |
Ответ на | Re: 25P02, current transaction is aborted, commands ignored (Philip Yarra <philip@utiba.com>) |
Ответы |
Re: 25P02, current transaction is aborted, commands ignored
|
Список | pgsql-jdbc |
Philip Yarra wrote: > I always assumed what Dave just said, but porting from Oracle & Sybase > to PostgreSQL, we ran into exactly the same issue - we also solved it > with savepoints. However, I threw together the attached sample app to > test *precisely* what ends up in the database when auto-commit is off. > For the impatient, it sets auto-commit off, and tries to insert 3 rows. > The first succeeds, the second violates a unique index, so fails, and > the third is issued after the second, so should also fail. We ignore the > exceptions, then commit. The results puzzle me somewhat: > > Oracle 10g: first and third inserts are in the DB > Sybase ASE 12.5: first and third inserts are in the DB > PostgreSQL 8.1.1: first insert is in the DB > > Now I agree that Oracle and Sybase have this kind of wrong - the third > insert should not succeed. However, reading Dave's statement "The > concept of an atomic transaction means that it must either succeed > completely or fail completely. PostgreSQL does this." makes me wonder if > the first insert should be in the DB either? Or am I making some sort of > mistake here? From my results, it looks more like PostgreSQL's behaviour > is "Everything up the first failure can be committed" which isn't quite > the same thing as an indivisible unit of work that succeeds or fails > completely. Can we see your testcase? The behaviour you describe is not what I'd expect. -O
В списке pgsql-jdbc по дате отправления: