I think I found the answer, you use the CURRVAL() function.
Just to cover all the bases, consider this scenario in chronological order:
1. You insert data and the primary key is set to 20.
2. Someone else inserts data and the next key is set to 21.
3. If you call currval() will it return 20? I would think it does.
----- Original Message -----
To: "Postgres general mailing list" <pgsql-general@postgresql.org>
Sent: Saturday, July 08, 2006 11:28 PM
Subject: [GENERAL] Getting Primary Key Value After Insert
> I'm inserting data into two tables, the second table has a forigen key
> that points to the primary key of the first table.
>
> After I insert a row into the first table, I need to take the primary key
> value created in "SERIAL" column and store it so I can insert it as the
> forigen key value on the second table.
>
> What is the best way to get the value of the primary key ( SERIAL data
> type ) of the row I inserted?
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>