I'm writing a PL/pgSQL function that will insert a row and return its
id. Right now I just do a select after the insert to get the id of the
new row (see example code below). But I'm guessing that there's a
better way. Any recommendations?
CREATE FUNCTION foo(VARCHAR, VARCHAR)
RETURNS INTEGER
AS '
DECLARE
p1 ALIAS FOR $1;
p2 ALIAS FOR $2;
v_id INTEGER;
BEGIN
INSERT INTO foo (a, b) VALUES (p1, p2);
SELECT id
INTO v_id
FROM foo
WHERE a = p1 AND
b = p2;
RETURN v_id;
END;
'
LANGUAGE 'plpgsql';
Thanks in advance.
--
Stuart Robinson [stuart(at)zapata(dot)org]