Re: What is the postgres version of mysql's "ON DUPLICATE KEY"

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Pierre-Frédéric Caillaud <lists(at)boutiquenumerique(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: What is the postgres version of mysql's "ON DUPLICATE KEY"
Date: 2004-09-11 11:56:26
Message-ID: 200409111356.26828.peter_e@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Pierre-Frédéric Caillaud wrote:
> > 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 ?

There is no "between" a single statement.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Pierre-Frédéric Caillaud 2004-09-11 12:13:37 Re: What is the postgres version of mysql's "ON DUPLICATE KEY"
Previous Message Pierre-Frédéric Caillaud 2004-09-11 10:48:20 Re: What is the postgres version of mysql's "ON DUPLICATE KEY"