sequence values question

From: mmiranda(at)americatel(dot)com(dot)sv
To: pgsql-general(at)postgresql(dot)org
Subject: sequence values question
Date: 2005-05-10 19:37:16
Message-ID: 76E0DAA32C39D711B6EC0002B364A6FA044EBD95@amsal01exc01.americatel.com.sv
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi, how can i know the values generated by a column of type serial?
I mean, i have the following table

productos
(
id serial,
desc varchar(50)
)

select * from productos;

+-----+------------+
| id | desc |
+-----+------------+
| 1 | ecard1 |
| 2 | ecard2 |
| 3 | ecard3 |
| 4 | ecard4 |
| 5 | ecard5 |
+-----+------------+

I insert a row using a SP, i want to return the id and desc of the new
product in the table.
this is an example of the hypothetical SP

CREATE OR REPLACE FUNCTION insert_row(text) returns text language plpgsql
AS $$
DECLARE
vdesc alias for $1;
BEGIN
INSERT INTO productos (desc) VALUES (vdesc);
RETURN (new id ???) || ',' || vdesc;
END;
$$
LANGUAGE 'plpgsql' VOLATILE;

I know i can get the last value using currval(text), and add 1 to the next
values, is this the only way?, what if i want to insert several products?,
should i return a record ?
thanks

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2005-05-10 19:50:05 Re: [PERFORM] "Hash index" vs. "b-tree index" (PostgreSQL
Previous Message Just Someone 2005-05-10 19:36:27 Hosting options on Postgres - what's best?