From: Alvaro Herrera <alvherre@commandprompt.com>
To: Martin Marques <martin@bugs.unl.edu.ar>
Cc: pgsql-sql@postgresql.org
Subject: Re: Rows with exclusive lock
Date: Sun, 23 Jul 2006 12:10:51 -0400
Message-ID: <20060723161050.GC32458@surnet.cl> (raw)
In-Reply-To: <Pine.LNX.4.64.0607221151080.17932@bugs.unl.edu.ar>
References: <Pine.LNX.4.64.0607221135470.17932@bugs.unl.edu.ar>
<20060722144218.GH5125@surnet.cl>
<Pine.LNX.4.64.0607221151080.17932@bugs.unl.edu.ar>
Martin Marques escribió:
> On Sat, 22 Jul 2006, Alvaro Herrera wrote:
>
> >Martin Marques escribió:
> >>Is it posible to get an exclusive (read/write) lock on certain rows? I
> >>don't want to block the whole table, only certain rows, but I want it to
> >>be a read/write lock.
> >
> >That's what SELECT FOR UPDATE does.
>
> Hi Alvaro,
>
> After the SELECT FOR UPDATE other transactions can still see the locked
> rows. I want a read/write lock, so no one can access does rows.
SELECT FOR UPDATE acquires an exclusive lock, but other transactions
must try to acquire a lock on the rows as well, or they won't be locked.
You can try using SELECT FOR SHARE (new as of 8.1) if you want some
transactions to hold shared (read) locks.
IOW, SELECT FOR UPDATE blocks other SELECTs FOR UPDATE and SELECTs FOR
SHARE, but it does not block plain SELECT.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: alvherre@commandprompt.com, martin@bugs.unl.edu.ar
Subject: Re: Rows with exclusive lock
In-Reply-To: <20060723161050.GC32458@surnet.cl>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox