Bruno Wolff III wrote:
> On Sun, Mar 04, 2007 at 14:55:47 +0200,
> Hannu Krosing <hannu@skype.net> wrote:
>> UPDATE
>> IF NOT FOUND THEN
>> INSERT
>> IF DUPLICATE KEY THEN
>> UPDATE
>> END IF
>> END IF
>
> I believe it is possible for the above to fail. For example another
> transaction could create a matching record between the update and insert
> and then another transaction could delete it between the insert and the
> second update.
You know we have example in manual right ?
http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-UPSERT-EXAMPLE
:)
--
Regards
Petr Jelinek (PJMODOS)