Note that that has race conditions, i.e. two clients operating at the same
time could get the same max(id).
The setval currval and nextval functions exist to prevent race conditions,
and they work well. Rolling your own is a recipe for disaster.
On Fri, 27 Jun 2003, Michael Kovalcik wrote:
> All,
>
> i got the answer i was needing. I used the following:
>
> select max(id) from table
>
> it works great!! :)
>
> --- Josh Goldberg <josh@4dmatrix.com> wrote:
> > What could cause a table to act serialized when read
> > committed transactions
> > are set in the configuration? That is something I
> > am running into, which
> > provoked my [incorrect] example.
> >
> > From: "Bruno Wolff III" <bruno@wolff.to>
> > Sent: Thursday, June 26, 2003 4:30 PM
> > > On Thu, Jun 26, 2003 at 14:00:33 -0700,
> > > Josh Goldberg <josh@4dmatrix.com> wrote:
> > > > to get the last record inserted just
> > > > select * from row order by autoincId desc limit
> > 1;
> > > >
> > > > if you have several clients doing this you might
> > want to put your insert
> > and
> > > > the select inside a transaction.
> > >
> > > That won't help. Your suggestion will only work in
> > serializable
> > transactions.
> > >
> > > In read committed mode the select might see a
> > value for autoincId from
> > > a transaction that committed between the insert
> > and the select.
> > >
> > > ---------------------------(end of
> > broadcast)---------------------------
> > > TIP 8: explain analyze is your friend
> > >
> >
>
>
> __________________________________
> Do you Yahoo!?
> SBC Yahoo! DSL - Now only $29.95 per month!
> http://sbc.yahoo.com
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>