is an explicit lock necessary?

From: Ash Grove <ash_grv7(at)yahoo(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: is an explicit lock necessary?
Date: 2006-05-04 18:10:56
Message-ID: 20060504181056.14509.qmail@web52510.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi,

Does beginning a transaction put locks on the tables
queried within the transaction?

In the example below, is #2 necessary? My thought was
that I would need to use an explicit lock to make sure
that the sequence value I'm selecting in #4 is the
same one that is generated from #3. I'm worried about
another instance of the application doing an insert on
table1 between #3 and #4.

1) From my app, I turn off autocommit.
2) I lock table1 in access exclusive mode
3) I do an insert into table1 which generates a
primary key via nextval on sequence1
4) I grab grab the primary key value via currval on
sequence1
5) I do an insert on table2 which includes table1's
primary key so I can join the records later.
6) I manually commit

Thanks!
Ash

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Andrew Sullivan 2006-05-04 18:47:48 Re: is an explicit lock necessary?
Previous Message Oisin Glynn 2006-05-04 18:00:57 Re: Connecting to Postgres from other machines (outside localhost)