pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Ragnar <gnari@hive.is>
To: Ash Grove <ash_grv7@yahoo.com>
Cc: pgsql-sql@postgresql.org
Subject: Re: is an explicit lock necessary?
Date: Thu, 04 May 2006 18:59:58 +0000
Message-ID: <1146769198.31874.3.camel@localhost.localdomain> (raw)
In-Reply-To: <20060504181056.14509.qmail@web52510.mail.yahoo.com>
References: <20060504181056.14509.qmail@web52510.mail.yahoo.com>

On fim, 2006-05-04 at 11:10 -0700, Ash Grove wrote:
> 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

No. The locking is not necessary.

currval is defined to return the value most recently obtained by nextval
for this sequence in the current session. 

see:
http://www.postgresql.org/docs/8.1/interactive/functions-sequence.html

gnari






view thread (4+ messages)

Message-ID: <1146769198.31874.3.camel@localhost.localdomain>
Permalink:  ../1146769198.31874.3.camel@localhost.localdomain/
Also on:    postgresql.org/message-id/1146769198.31874.3.camel@localhost.localdomain

 · 

reply

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: gnari@hive.is, ash_grv7@yahoo.com
  Subject: Re: is an explicit lock necessary?
  In-Reply-To: <1146769198.31874.3.camel@localhost.localdomain>

* 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