From: | Florian Weimer <fweimer(at)bfk(dot)de> |
---|---|
To: | Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com> |
Cc: | gnanam(at)zoniac(dot)com, Atul Goel <Atul(dot)Goel(at)iggroup(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: On duplicate ignore |
Date: | 2012-01-19 16:53:14 |
Message-ID: | 82hazrab2d.fsf@mid.bfk.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
* Scott Marlowe:
> On Thu, Jan 19, 2012 at 7:54 AM, Florian Weimer <fweimer(at)bfk(dot)de> wrote:
>> * Gnanakumar:
>>
>>>> Just create a unique index on EMAIL column and handle error if it comes
>>>
>>> Thanks for your suggestion. Of course, I do understand that this could be
>>> enforced/imposed at the database-level at any time. But I'm trying to find
>>> out whether this could be solved at the application layer itself. Any
>>> thoughts/ideas?
>>
>> If you use serializable transactions in PostgreSQL 9.1, you can
>> implement such constraints in the application without additional
>> locking. However, with concurrent writes and without an index, the rate
>> of detected serialization violations and resulting transactions aborts
>> will be high.
>
> No, you sadly can't. PostgreSQL doesn't yet support proper predicate
> locking to allow the application to be sure that the OP's original
> statement, and ones like it, don't have a race condition. A unique
> index is the only way to be sure.
Huh? This was one of the major new features in PostgreSQL 9.1.
--
Florian Weimer <fweimer(at)bfk(dot)de>
BFK edv-consulting GmbH http://www.bfk.de/
Kriegsstraße 100 tel: +49-721-96201-1
D-76133 Karlsruhe fax: +49-721-96201-99
From | Date | Subject | |
---|---|---|---|
Next Message | Willem Buitendyk | 2012-01-19 17:27:41 | Cannot connect remotely to postgresql |
Previous Message | Scott Marlowe | 2012-01-19 16:50:11 | Re: On duplicate ignore |