From: | Mike Mascari <mascarm(at)mascari(dot)com> |
---|---|
To: | "scott(dot)marlowe" <scott(dot)marlowe(at)ihs(dot)com> |
Cc: | Ian Barwick <barwick(at)gmx(dot)net>, techlist(at)voyager(dot)phys(dot)utk(dot)edu, pgsql-general(at)postgresql(dot)org |
Subject: | Re: INSERT WHERE NOT EXISTS |
Date: | 2003-06-25 20:23:41 |
Message-ID: | 3EFA04CD.5010702@mascari.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
scott.marlowe wrote:
> On Wed, 25 Jun 2003, Ian Barwick wrote:
>
>>On Wednesday 25 June 2003 21:37, Mike Mascari wrote:
>>
>>>I proposed that same solution 3 years ago. Tom shoots it down:
>>>
>>>http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&threadm=3A4D611
>>>6.1A613402%40mascari.com&rnum=1&prev=/groups%3Fq%3DMike%2BMascari%2BINSERT%2
>>>BNOT%2BEXISTS%26ie%3DUTF-8%26oe%3DUTF-8%26hl%3Den
>>>
>>>Reuben must be prepared for unique key violation, I'm afraid. And,
>>>despite the optimism in the link, we still don't have savepoints. :-(
>>
>>aha, useful to know. Thanks.
>
> Oh yeah, in my example you need to do a select for update to be race safe.
>
But if two simultaneous "selects for update" fail to find rows, both
clients will then attempt the INSERT, which will cause one of them to
abort due to a unique key violation. In these "replace" scenarios, the
application must be prepared for the unique key violation with the
current version of PostgreSQL.
Mike Mascari
mascarm(at)mascari(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Mike Mascari | 2003-06-25 20:25:54 | Re: INSERT WHERE NOT EXISTS |
Previous Message | Jonathan Bartlett | 2003-06-25 20:21:43 | Re: INSERT WHERE NOT EXISTS |