Re: Atomicity? - Mailing list pgsql-general

From Michael Glaesemann
Subject Re: Atomicity?
Date
Msg-id A13B2A81-F9D4-4D8C-A155-B59F27716F93@seespotcode.net
Whole thread Raw
In response to Re: Atomicity?  (Peter Eisentraut <peter_e@gmx.net>)
Responses Re: Atomicity?  (Naz Gassiep <naz@mira.net>)
List pgsql-general
On Aug 29, 2006, at 4:46 , Peter Eisentraut wrote:

> Naz Gassiep wrote:
>> conwatch=# UPDATE replies SET rgt = rgt + 2 WHERE postid = 18 AND rgt
>>> = 11;
>> ERROR:  duplicate key violates unique constraint "replies_rgt_postid"
>
> This is a well-known deficiency in PostgreSQL.  You will have to work
> around it somehow (by changing the query, the schema, or the index).

One such workaround is:

BEGIN;

UPDATE replies
SET rgt = -1 * (rgt + 2)
WHERE postid = 18
    AND rgt >= 11;

UPDATE replies
SET rgt = -1 * rgt
WHERE rgt < 0;

COMMIT;

Michael Glaesemann
grzm seespotcode net




pgsql-general by date:

Previous
From: Naz Gassiep
Date:
Subject: Re: Atomicity?
Next
From: Naz Gassiep
Date:
Subject: Re: Atomicity?