Thread: current transaction is aborted, commands ignored until end of transaction block

Hello,
 
I'm using PostgreSQL 8.0 and Java in NetBeans IDE.  In java I have a method that does a "insert into" and it throws a "duplicate key violates unique constraint."  I call that method once and then call another method which does a "select."  However, when the select method gets called postgres throws a "current transaction is aborted, commands ignored until end of transaction block."  I've read some of the mailing list and it says if I set on_error_rollback to on it'll work; but when I use sql(from netbeans) to set it, it doesn't recognize on_error_rollback.  My statement is as follows:
    set on_error_rollback = on
 
Does version 8.0 not have on_error_rollback?  Is there another way of handling this.  Any help is much appreciated.
 
 
vyang
Vang wrote:
> Hello,
>
> I'm using PostgreSQL 8.0 and Java in NetBeans IDE.  In java I have a
> method that does a "insert into" and it throws a "duplicate key
> violates unique constraint."  I call that method once and then call
> another method which does a "select."  However, when the select
> method gets called postgres throws a "current transaction is aborted,
> commands ignored until end of transaction block."  I've read some of
> the mailing list and it says if I set on_error_rollback to on it'll
> work; but when I use sql(from netbeans) to set it, it doesn't
> recognize on_error_rollback.  My statement is as follows: set
> on_error_rollback = on

It's a psql interactive thing rather than something you can use from
other clients:
   \set on_error_rollback
It's designed to help with spelling mistakes/scripts etc.

If you get an error back from an insert you need to catch it and
rollback yourself.

Of course by default, all PostgreSQL statements execute in their own
transaction. That would mean your SELECT would be fine, and implies
something in your JDBC setup is issuing "BEGIN" without your knowledge.

--
   Richard Huxton
   Archonet Ltd