Re: Obtener el valor de un campo serial luego de un insert

From: "Jaime Casanova" <jcasanov(at)systemguards(dot)com(dot)ec>
To: "M C" <ayudapostgre(at)gmail(dot)com>
Cc: POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Obtener el valor de un campo serial luego de un insert
Date: 2008-12-15 02:07:09
Message-ID: 3073cc9b0812141807j72002c33hd73b31266bd7ba82@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2008/12/14 M C <ayudapostgre(at)gmail(dot)com>:
> Sigo sin entender como puedo hacer. El valor serial es id_item y no id_padre
> es por esto que esta en RETURNING menu.id_item.currval()
>
>

no habia visto bien el RETURNING, asi que tienes 2 cosas mal... la que
te dije antes y la forma de invocar currval()

la funcion deberia ser algo asi:

CREATE OR REPLACE FUNCTION agregar_item_menu(integer, integer, integer,
bpchar, bpchar)
RETURNS integer AS
$BODY$
DEFINE
valor integer;
BEGIN
INSERT INTO menu (id_padre, posicion, nivel, titulo, pagina)
VALUES ($1,$2,$3,$4,$5)
RETURNING currval(pg_get_serial_sequence('menu', 'id_item') INTO valor;
RETURN valor;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

PS: siempre con copia a la lista

--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2008-12-15 03:16:15 Re: Obtener el valor de un campo serial luego de un insert
Previous Message Jaime Casanova 2008-12-13 21:09:58 Re: LUN´s para Datos y Logs