Re: What is the postgres version of mysql's "ON DUPLICATE KEY" - Mailing list pgsql-general

From Pierre-Frédéric Caillaud
Subject Re: What is the postgres version of mysql's "ON DUPLICATE KEY"
Date
Msg-id opsd5sauwxcq72hf@musicbox
Whole thread Raw
In response to Re: What is the postgres version of mysql's "ON DUPLICATE KEY"  (Kevin Barnard <kevin.barnard@gmail.com>)
Responses Re: What is the postgres version of mysql's "ON DUPLICATE KEY"  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-general
> INSERT INTO related_products (product_id,related_product_id)
> SELECT 1, 2 WHERE NOT EXISTS (SELECT 1
>                                                        FROM
> related_products
>                                                        WHERE
> product_id = 1 AND related_product_id = 2)

    Should not the SELECT be FOR UPDATE ?
    because if no insert is done, the OP wanted to UPDATE the row, so it
should not be deleted by another transaction in-between...

    Can the above query fail if another transaction inserts a row between the
SELECT and the INSERT or postgres guarantee that this won't happen ?

pgsql-general by date:

Previous
From: Devrim GUNDUZ
Date:
Subject: Re: Where can I get pgsqlodbc now gborg is down?
Next
From: Peter Eisentraut
Date:
Subject: Re: What is the postgres version of mysql's "ON DUPLICATE KEY"