Re: JDBC and fetching the OID of an insert - Mailing list pgsql-jdbc

From Michael Paesold
Subject Re: JDBC and fetching the OID of an insert
Date
Msg-id 01f801c25f1d$df2cca20$4201a8c0@beeblebrox
Whole thread Raw
In response to Re: JDBC and fetching the OID of an insert  (Daryl Beattie <dbeattie@insystems.com>)
List pgsql-jdbc
Hi Daryl,
Hi all,

> 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.

Well, so I can't use OIDs but only SEQUENCES, at least with JDBC.

> I cannot speak on whether or not getGeneratedKeys() is
> supported/implemented in the JDBC driver.

> public ResultSet getGeneratedKeys()
as well as corresponding methods like
> public int executeUpdate(String sql, String columnNames[])
are new in JDBC3.

They are not yet implemented in the PostgreSQL JDBC driver (I had a look at
the code in CVS).

To all the JDBC developers: do you think it would be possible to implement
these?
I would offer my help.

What I am thinking of is:
- do the insert
- get the OID of the inserted row (should be possible inside the driver,
right?)
- fetch the values of those fields that where requested

At least this would not require any help from the backend. On the other hand
it would still leave the question open how to decide what is considered a
generated key. I will have a look at the JDBC specs.

Best Regards,
Michael




pgsql-jdbc by date:

Previous
From: Dave Cramer
Date:
Subject: Re: JDBC and fetching the OID of an insert
Next
From: "Michael Paesold"
Date:
Subject: Re: JDBC and fetching the OID of an insert