Re: Design question regarding arrays

From: Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com>
To: Oliver Fromme <olli(at)lurza(dot)secnetix(dot)de>
Cc: Sean Davis <sdavis2(at)mail(dot)nih(dot)gov>, Michael Glaesemann <grzm(at)myrealbox(dot)com>, pgsql-novice(at)postgresql(dot)org, A Gilmore <agilmore(at)shaw(dot)ca>
Subject: Re: Design question regarding arrays
Date: 2004-08-09 14:22:11
Message-ID: 20040809071805.X32884@megazone.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

On Mon, 9 Aug 2004, Oliver Fromme wrote:

> Sean Davis wrote:
> > I'm a novice, too, but why not look up the value in the sequence and
> > increment it before doing any inserting? If you are doing all the inserts
> > at the same time (more or less), then you can just use this value in the
> > insert into both tables. Put all of this inside one transaction.
>
> That won't work if another process is trying to do the same
> thing at the same time. They both get the same value when
> they look it up, so there will be an ID collision.

It should be safe if you're using a sequence and using nextval() to get
the value that you are using in both insert statements. A second session
will not get the same value you just got from nextval barring a cycling
sequence generator that wraps back to the same number between the nextval
and insert.

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Tom Lane 2004-08-09 14:23:11 Re: Multiple return 'columns' from postgre pl/pgsql
Previous Message Oliver Fromme 2004-08-09 10:29:27 Re: Design question regarding arrays