Re: [GENERAL] performance issue using DBI

From: "Dan Langille" <dan(at)langille(dot)org>
To: Nicolas Nolst <nnolst(at)hotmail(dot)com>
Cc: pgsql-admin(at)postgresql(dot)org, pgsql-general(at)postgresql(dot)org
Subject: Re: [GENERAL] performance issue using DBI
Date: 2002-06-06 16:33:54
Message-ID: 20020606163524.D685F3F28@bast.unixathome.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-general

On 6 Jun 2002 at 17:14, Oliver Elphick wrote:

> On Thu, 2002-06-06 at 14:55, Joshua b. Jore wrote:u
> > Don't use currval since some other process might alter the
> > sequence between the time you call nextval and currval.
>
> This is wrong. currval() will always return the last serial assigned in
> *the*same*session*. It is not affected by other users at all.

Folks, here's a short test which might help. Note the BEGIN.

$ psql testing
testing=# create sequence test;
CREATE
testing=# select currval('test');
ERROR: test.currval is not yet defined in this session
testing=# select setval('test', 1);
setval
--------
1
(1 row)

testing=# select currval('test');
currval
---------
1
(1 row)

testing=# select currval('test');
currval
---------
1
(1 row)

testing=# select currval('test');
currval
---------
1
(1 row)

testing=# select currval('test');
currval
---------
1
(1 row)

testing=#

Then, in another window, I did this:

$ psql testing
# select nextval('test');
nextval
---------
2
(1 row)

testing=# select nextval('test');
nextval
---------
3
(1 row)

testing=# select nextval('test');
nextval
---------
4
(1 row)

testing=#

Then back to the other window:

testing=# select currval('test');
currval
---------
1
(1 row)

testing=# select nextval('test');
nextval
---------
5
(1 row)

testing=#

cheers

FWIW: I always use nextval when looking for a new ID.
--
Dan Langille

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Joel Burton 2002-06-06 16:41:32 Re: About a PL/pgSQL function
Previous Message Oliver Elphick 2002-06-06 16:14:05 Re: [GENERAL] performance issue using DBI

Browse pgsql-general by date

  From Date Subject
Next Message Lee Green 2002-06-06 16:45:09 Re: [GENERAL] performance issue using DBI
Previous Message Carl Worth 2002-06-06 16:31:42 Confusion regarding sub-second time input