RE: [SQL] Getting primary key from insert statement

From: Michael J Davis <michael(dot)j(dot)davis(at)tvguide(dot)com>
To: "'Herouth Maoz'" <herouth(at)oumail(dot)openu(dot)ac(dot)il>, emils(at)mail(dot)usis(dot)bkc(dot)lv, pgsql-sql(at)postgreSQL(dot)org
Subject: RE: [SQL] Getting primary key from insert statement
Date: 1999-06-07 20:10:26
Message-ID: 93C04F1F5173D211A27900105AA8FCFC14557B@lambic.prevuenet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

I have been using this technique for years in Oracle (select next value from
the primary key sequence and insert using this primary key). I like this
approach. I don't think a transaction is needed. Access97 definitely likes
this approach better because it wants to reselect the newly inserted record.
Without the primary key in the insert statement, the re-select can be very
slow and potentially fail because the re-select is only using values
provided in the insert statement. Retrieving the primary key after the
insert does not help Access97.

> -----Original Message-----
> From: Herouth Maoz [SMTP:herouth(at)oumail(dot)openu(dot)ac(dot)il]
> Sent: Monday, June 07, 1999 1:29 AM
> To: emils(at)mail(dot)usis(dot)bkc(dot)lv; pgsql-sql(at)postgreSQL(dot)org
> Subject: Re: [SQL] Getting primary key from insert statement
>
> At 12:51 +0300 on 07/06/1999, Emils Klotins wrote:
>
>
> >
> > Wouldn't it be simpler just to SELECT the next value from the sequence
> >BEFORE the insert and
> > use it in the INSERT statement directly?
>
> Then you have to have a transaction around the two operations. And by the
> time you do the select, someone may lock the table where you insert. It's
> a
> potential for deadlock.
>
> Herouth
>
> --
> Herouth Maoz, Internet developer.
> Open University of Israel - Telem project
> http://telem.openu.ac.il/~herutma
>
>

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Jackson, DeJuan 1999-06-07 21:29:32 RE: [SQL] Slashdot Query
Previous Message Emils Klotins 1999-06-07 09:51:06 Re: [SQL] Getting primary key from insert statement