Dear Michael,
I asked this question a little while back too. :) I'm sure it is a
question that comes up quite often.
The simple answer that I got is to do:
SELECT nextval(columnName);
INSERT INTO tableName (columnName) VALUES ([result of first query]);
through JDBC calls. If the insert fails, nothing is lost. No real
need for a transaction here.
I cannot speak on whether or not getGeneratedKeys() is
supported/implemented in the JDBC driver.
Yes, you are correct in assuming that the only way to get a value
for a sequence via JDBC is to "SELECT currval('...')" resp. "SELECT
nextval('...')".
Sincerely,
Daryl.
> -----Original Message-----
> From: Michael Paesold [mailto:mpaesold@gmx.at]
> Sent: Wednesday, September 18, 2002 9:37 AM
> To: pgsql-jdbc@postgresql.org
> Subject: [JDBC] JDBC and fetching the OID of an insert
>
>
> Hi,
>
> Does anyone of you know, how to get the OID of the just
> inserted Row after
> stmt.executeUpdate("INSERT... ")? I hope this is possible at all!
>
> If it's not, I would be willing to implement
> getGeneratedKeys() to return at
> least the OID of an insert. Assuming that would be possible
> and exceptable?
>
> (Btw. am I correct that the only way to get a value for a
> sequence via JDBC
> is to "SELECT currval('...')" resp. "SELECT nextval('...')"?)
>
>
> Best Regards,
> Michael
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>