Re: getting primary key values for inserted records? - Mailing list pgsql-jdbc

From Jeremy Buchmann
Subject Re: getting primary key values for inserted records?
Date
Msg-id 9AB80F78-50EC-11D8-BFB3-000A95D7EFFE@wellsgaming.com
Whole thread Raw
In response to getting primary key values for inserted records?  (Guido Fiala <guido.fiala@dka-gmbh.de>)
List pgsql-jdbc
> I'am currently at the point, that after i insert a new Record in a
> ResultSet
> using insertRow() and using a serial for the primary key of the target
> table.
>
> Of course i do not call rs.updateInt(primaryKey), as the sequence does
> get me
> the new value automatically.
>
> However - even using rs.refreshRow() doesn't get me the values, just a
> requery
> of the ResultSet.
>
> What is the way to go here?

If you don't mind running two statements, you can select the next value
from the sequence and then put it in your insert statement.  Like this:

$pkey = "SELECT nextval('sequence_name')";
"INSERT INTO table (id, ...) VALUES ($pkey, ...)";

It's psuedo-code, but you get the idea.  This ensures that you know the
primary key of the row you inserted, and the number came from the
sequence so it's safe.

Hope that helps,
Jeremy


pgsql-jdbc by date:

Previous
From: Kris Jurka
Date:
Subject: Re: getting primary key values for inserted records?
Next
From: Kris Jurka
Date:
Subject: Re: Patch to readd documentation