From: | Sajeev Mayandi <Sajeev_Mayandi(at)symantec(dot)com> |
---|---|
To: | Steven Schlansker <steven(at)likeness(dot)com>, Thomas Kellerer <spam_eater(at)gmx(dot)net> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: upsert functionality |
Date: | 2013-05-16 18:32:24 |
Message-ID: | CDBA7595.406D2%sajeev_mayandi@symantec.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Thank you for true response will try out.
Sajeev
On 5/16/13 10:27 AM, "Steven Schlansker" <steven(at)likeness(dot)com> wrote:
>
>On May 15, 2013, at 11:52 PM, Thomas Kellerer <spam_eater(at)gmx(dot)net> wrote:
>
>> Sajeev Mayandi, 16.05.2013 07:01:
>>> Hi,
>>>
>>> Our company is planning to move to postreSQL. We were initially using
>>> sybase where upsert functionality was available using "insert on
>>> existing update" clause. I know there multiple ways to fix this
>>> using RULE or separate function in postgresql. But I would like to
>>> know which version of postgresql has support for upsert planned using
>>> an official syntax. I have postgresql 9.2 which does not have this
>>> feature, if its planned in near future, I would rather wait to
>>> migrate to PostgreSQL.
>>>
>>
>> You can use writeable CTEs for this purpose.
>>
>> There are several examples out there:
>>
>> http://www.xzilla.net/blog/2011/Mar/Upserting-via-Writeable-CTE.html
>> http://www.depesz.com/2011/03/16/waiting-for-9-1-writable-cte/
>> http://www.depesz.com/2012/06/10/why-is-upsert-so-complicated/
>>
>> http://stackoverflow.com/a/8702291/330315
>
>One thing I didn't see mentioned in two of the links -- they mention race
>conditions, where multiple writers can still cause the faked UPSERT to
>fail.
>
>This can be avoided using SERIALIZABLE transactions, now that Postgres has
>SSI. http://wiki.postgresql.org/wiki/SSI
>
>I can vouch that we use writable CTEs and SERIALIZABLE to implement UPSERT
>in production with no issues thus far.
>
>
>
>--
>Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
>To make changes to your subscription:
>http://www.postgresql.org/mailpref/pgsql-general
From | Date | Subject | |
---|---|---|---|
Next Message | Igor Neyman | 2013-05-16 18:42:17 | Re: pg_upgrade link mode |
Previous Message | AI Rumman | 2013-05-16 18:27:03 | Re: pg_upgrade link mode |