Re: Insert and obtain the pk

From: Adam Ruth <aruth(at)intercation(dot)com>
To: "Eliu Montoya" <eliu(at)itam(dot)mx>
Cc: <pgsql-general(at)postgresql(dot)org>
Subject: Re: Insert and obtain the pk
Date: 2003-11-06 19:46:39
Message-ID: F023D5B1-1091-11D8-8291-000A959D1424@intercation.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

You can call currval on the sequence that provided the value for the
primary key. It's guaranteed to be the last value retrieved from that
sequence *for your session*.

insert into table1 (f1, f2) values ('a', 'b');

select currval('table1_seq');

Use the name of your sequence. If the primary key is a SERIAL type,
then there will be a sequence in the background. I believe it's
tablename_seq or something like that.

regards, adam

On Nov 6, 2003, at 11:26 AM, Eliu Montoya wrote:

>  
>
>  
>
>  
>
> Hello everybody,
>
> Does anyone know an easy way to  insert a record (without a value for
> the primary key because it is a sequence)  and at the same time obtain
> the value of primary key that was assign to this new record.
>
>  
>
> I always try insert and then select with the same values that I used
> for the insert, but I believe this is not a good way to do it.
>
>  
>
> Any suggestions???

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Ian Harding 2003-11-06 19:51:50 Re: Insert and obtain the pk
Previous Message Manfred Koizar 2003-11-06 19:41:08 Re: Help on update that subselects other records in table, uses joins