Re: JDBC and fetching the OID of an insert

From: "Michael Paesold" <mpaesold(at)gmx(dot)at>
To: "Daryl Beattie" <dbeattie(at)insystems(dot)com>, <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: JDBC and fetching the OID of an insert
Date: 2002-09-18 14:15:40
Message-ID: 01f801c25f1d$df2cca20$4201a8c0@beeblebrox
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Michael Paesold 2002-09-18 14:21:17 Re: JDBC and fetching the OID of an insert
Previous Message Dave Cramer 2002-09-18 14:04:13 Re: JDBC and fetching the OID of an insert