On 3/5/07, Jonathan Vanasco <[EMAIL PROTECTED]> wrote:
I recently had this code in my system

        handle 1-       select * from account where id = 1;
        handle 2-       update visit set visit_count= visit_count+1 where
account_id = 1; # account_id fkeys on account

it took me forever to realize why my system kept locking.  the select
+ transaction on handle 1 was getting an exclusive lock, and the
update was queued , trying to do an internal select on the fkey for
integrity checks

I'm no Postgres expert, but I don't think a SELECT should block an
UPDATE in an MVCC database system unless the first statement is a
SELECT FOR UPDATE or similar.  Maybe if you use an isolation level of
REPEATABLE READ.

- Perrin

Reply via email to