Re: Re: SERIAL values

From: Hernan Gonzalez <hgonzal(at)sinectis(dot)com(dot)ar>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Re: SERIAL values
Date: 2001-03-05 15:48:29
Message-ID: 3AA3B54D.EF3E5A2@sinectis.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Martin A. Marques" wrote:
>
> Mensaje citado por: Kostis Mentzelos <mentzelos(at)ematic(dot)com>:
>
> > Hi all,
> >
> > how can I get the current values from SERIAL types after an INSERT
> > using
> >
> > libpq?
>
> Don't know abou libpq, but the SERIAL type is managed by a sequence, and you can
> get the current value of the sequence (can't recall, but I guess it's current).
>
> Saludos... :-)
>
> P.D.: If I'm making an insert and after it I want to insert another value
> related with the serial inserted in the previous query to another table, which
> aproche is better:
>
> 1) Get the oid of the last insert and use it to find the INT in the serial
> column.

Yes, but if the table is large this may require an extra index
(for the oid field) to get reasonable performance...

The next solution is the good one:

> 2) Get the current value in the sequence (I guess this is very bad, cause while
> the first insert is finishing, another client can insert information on that
> column, changing the current value on the sequence).

Bad guess...
The values of the sequences are managed by the postmaster
so that they are 'session safe'.
The price to pay (and it should be taken into account) is
that the values of the secuence are not necessarily consecutive,
as seen from one session. Also, that rollbacks can lead to holes
in the secuence. This shouldn't be a problem, if (as is usually the
case)
the sequence is to be used as a unique identifier, not as a 'secuence'
proper...

Saludos

Hernán González
Buenos Aires, Argentina

> 3) another solution?
>
> System Administration: It's a dirty job,
> but someone told I had to do it.
> -----------------------------------------------------------------
> Martín Marqués email: martin(at)math(dot)unl(dot)edu(dot)ar
> Santa Fe - Argentina http://math.unl.edu.ar/~martin/
> Administrador de sistemas en math.unl.edu.ar
> -----------------------------------------------------------------
>

Attachment Content-Type Size
hgonzal.vcf text/x-vcard 271 bytes

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2001-03-05 15:57:38 Re: Re: INSERT ... RETURNING as Oracle
Previous Message mike 2001-03-05 15:46:54 name vs varchar vs text?