Re: Conocer el id después de insertar un registro nuevo

From: Miguel Rodríguez Penabad <penabad(at)gmail(dot)com>
To: "Jose Cariqueo" <jcariqueo(at)fonadis(dot)cl>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Conocer el id después de insertar un registro nuevo
Date: 2007-06-26 15:27:42
Message-ID: 95335e4e0706260827s7d64631ep607be5cf9b64febf@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 26/06/07, Jose Cariqueo <jcariqueo(at)fonadis(dot)cl> escribió:
> Estimados:
> Tengo la sigte. inquietud:
>
> Inserto un registro nuevo en una tabla e inmediatamente quiero conocer el
> id(pk) correspondiente a dicho registro, cosa de insertar dicho valor en
> otra tabla.
>
> Qué tipo de instrucción me permite hacer esto de manera segura, sin tener
> que hacer un SELECT después del INSERT.

La forma directa: usa insert ... returning.
Por ejemplo:
create table t(a serial primary key, b text);

insert into t(b) values('valor') returning a;
a
---
1
(1 row)
insert into t(b) values('valor') returning a;
a
---
2
(1 row)

La otra opción, si usas secuencias y puedes hacer el select después de
la inserción, sería:

select currval('t_a_seq');
currval
---------
2
(1 row)

Saludos
Miguel

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Arturo Munive 2007-06-26 15:38:53 Re: Conocer el id después de insertar un registro nuevo
Previous Message Arturo Munive 2007-06-26 15:24:49 Re: Conocer el id después de insertar un registro nuevo