Re: INSERT ON DUPLICATE KEY UPDATE

From: Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>
To: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: INSERT ON DUPLICATE KEY UPDATE
Date: 2004-06-18 21:32:25
Message-ID: 1087594345.2111.78.camel@camel
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Fri, 2004-06-18 at 16:41, Jim Seymour wrote:
> Robert Treat <xzilla(at)users(dot)sourceforge(dot)net> wrote:
> >
> [snip]
> >
> > IIRC the main downside to the select/update method is it introduces a
> > race condition that can only be solved by locking the table; not an
> > issue for most my$ql apps but would be frowned upon by most postgresql
> > users.
> [snip]
>
> One way around the race condition is to insert and, if the insert
> fails, do an update. If that fails, then something is actually wrong.
>
> One caveat regarding the above solution: Even when an insert fails, if
> there's a column with a sequence in it, that sequence will be
> incremented nonetheless.
>

The other being that you can't do that within a transaction in
postgresql. Course that should change if alvaro gets nested transactions
done for 7.5. (go alvaro go!)

Robert Treat
--
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL

In response to

Browse pgsql-general by date

  From Date Subject
Next Message DeJuan Jackson 2004-06-18 21:55:43 Re: Trigger to update records out of memory
Previous Message Robert Treat 2004-06-18 21:29:25 Re: INSERT ON DUPLICATE KEY UPDATE