2008/12/14 M C <[email protected]>:
> 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
--
TIP 4: No hagas 'kill -9' a postmaster

Responder a