Re: get last oid

From: "Ropel" <ropel(at)ropel(dot)it>
To: "Miguel Juan" <mjuan(at)cibal(dot)es>, "postgre" <pgsql-odbc(at)postgresql(dot)org>
Subject: Re: get last oid
Date: 2003-12-19 14:34:56
Message-ID: 02c801c3c63d$bfebc430$0100a8c0@ropelxp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Yor're right, I forgot that "currval" is not influenced by other sessions...

Regards

Roberto

----- Original Message -----
From: "Miguel Juan" <mjuan(at)cibal(dot)es>
To: "Ropel" <ropel(at)ropel(dot)it>; "postgre" <pgsql-odbc(at)postgresql(dot)org>
Sent: Friday, December 19, 2003 3:15 PM
Subject: Re: [ODBC] get last oid

> Hello,
>
> if you make an Insert on a table with a serial, you can get the last
value
> of the serial inserted by your session using:
> SELECT currval('Sequence_name');
>
> This is better and faster than any other solution. This ensures you to get
> the last sequence number asigned to your session. Doesn't matter the
number
> of concurrent INSERTS made by other clients.
>
> Regards
>
> Miguel Juan
>
>
>
> ----- Original Message -----
> From: Ropel
> To: postgre
> Sent: Friday, December 19, 2003 2:57 PM
> Subject: Re: [ODBC] get last oid
>
>
> ... You can't: some other task can do another insert between your insert
and
> your select, so you get the serial
> of the other record, not yours !
>
> ----- Original Message -----
> From: "Leeuw van der, Tim" <tim(dot)leeuwvander(at)nl(dot)unisys(dot)com>
> To: "'Ropel'" <ropel(at)ropel(dot)it>; "postgre" <pgsql-odbc(at)postgresql(dot)org>
> Sent: Friday, December 19, 2003 1:21 PM
> Subject: RE: [ODBC] get last oid
>
>
> > Hiya,
> >
> > You get the serial as a result of your select from sequence...
> >
> > --Tim
> >
> > -----Original Message-----
> > From: pgsql-odbc-owner(at)postgresql(dot)org
> > [mailto:pgsql-odbc-owner(at)postgresql(dot)org]On Behalf Of Ropel
> > Sent: vrijdag 19 december 2003 13:07
> > To: postgre
> > Subject: Re: [ODBC] get last oid
> >
> >
> > Yes of course, but doing so you have the same old problem: which serial
> did
> > you get ??
> >
> > ----- Original Message -----
> > From: "Shachar Shemesh" <psql(at)shemesh(dot)biz>
> > To: "Ropel" <ropel(at)ropel(dot)it>
> > Cc: "postgre" <pgsql-odbc(at)postgresql(dot)org>
> > Sent: Friday, December 19, 2003 12:38 PM
> > Subject: Re: [ODBC] get last oid
> >
> >
> > > Ropel wrote:
> > >
> > > >... In a well designed relational Db, every table has a (unique)
> primary
> > > >key: if so, you don't even need to
> > > >know the oid, because the record just inserted is directly reachable
> > using
> > > >the PK.
> > > >If your PK uses sequences, you have to get the next seq value "select
> > > >nextval() from seq_xxxxx..." and use the
> > > >value obtained for inserting your new row instead of using it as a
> > default
> > > >value; this way you are protected from
> > > >concurrent writing to the DB.
> > > >
> > > >If you REALLY need the oid from the ODBC connection, I can't help...
> > sorry !
> > > >
> > > >Bye
> > > >
> > > >Roberto
> > > >
> > > >
> > > >
> > > Actually, if you created the sequence implicitly by using the "serial"
> > > type, you don't even have to do that. You can simply do this:
> > > creating the table:
> > > create table foo (index serial not null, a type, b type.....);
> > > inserting into the table:
> > > insert into foo (a,b,....)....
> > >
> > > I.e. - leave the serial field out of the insert, and it will
> > > automatically be set to the next sequence from the table.
> > >
> > > --
> > > Shachar Shemesh
> > > Open Source integration & consulting
> > > Home page & resume - http://www.shemesh.biz/
> > >
> > >
> > >
> >
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 6: Have you searched our list archives?
> >
> > http://archives.postgresql.org
> >
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faqs/FAQ.html
>

In response to

Browse pgsql-odbc by date

  From Date Subject
Next Message Hiroshi Inoue 2003-12-19 14:35:40 Re: Bug correction
Previous Message Miguel Juan 2003-12-19 14:15:08 Re: get last oid