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