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: | aee6519f0608231525r1cbb2918kb8bb251f300724fc@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
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?
From | Date | Subject | |
---|---|---|---|
Next Message | Jasbinder Bali | 2006-08-24 05:03:43 | Shared Objects (Dynamic loading) |
Previous Message | Don Morrison | 2006-08-23 21:45:10 | Re: Conditional INSERT: if not exists |