Skip site navigation (1) Skip section navigation (2)

Re: Conditional INSERT: if not exists

From: "Don Morrison" <donmorrison(at)gmail(dot)com>
To: "Sean Davis" <sdavis2(at)mail(dot)nih(dot)gov>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: Conditional INSERT: if not exists
Date: 2006-08-23 22:25:25
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-novice
> > isn't a problem.  If you need to do this in a transaction, you can
> > simply set savepoints and roll back to the savepoint if an insert fails
> > (and you expected that it could).
> Unfortunately, for some reason it does a rollback of the entire outer
> transaction too, not just the nested one. :(  Anybody know why?
> If I use stored procedures will it be easier?

When I try to insert a duplicate row, this generates an IntegrityError
on my unique index, which rolls back my entire transaction, when I
really want it to generate a ROLLBACK TO SAVEPOINT for the most recent
savepoint, so only that insert is ignored.  Does anyone know a
configuration trick to get it to do this, or do I have to write a
stored procedure where I explicitly call ROLLBACK TO SAVEPOINT?

In response to

pgsql-novice by date

Next:From: Jasbinder BaliDate: 2006-08-24 05:03:43
Subject: Shared Objects (Dynamic loading)
Previous:From: Don MorrisonDate: 2006-08-23 21:45:10
Subject: Re: Conditional INSERT: if not exists

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group