Re: Support for getting generated keys. - Mailing list pgsql-jdbc

From Kris Jurka
Subject Re: Support for getting generated keys.
Date
Msg-id alpine.BSO.2.00.0909261033190.2098@leary.csoft.net
Whole thread Raw
In response to Support for getting generated keys.  (Junyan Luo <jzl106@gmail.com>)
List pgsql-jdbc

On Fri, 25 Sep 2009, Junyan Luo wrote:

> Although driver 8.4 is supposed to support getting generated keys,
> this issue still remains quite unclear for most people (including me)
> due to the lack of documentation. I have explored older threads for a
> while and figured out the current workaround and here is my findings.
> Please point out any mistake I made:
>
> 1. For a Statement, you MUST use the "RETURNING" clause in a "INSERT"
> statement. The code to get generated keys will be like:
>       ResultSet keys = Statement.executeQuery("INSERT...RETURNING [id
> column]"); // Make sure it's executeQuery() not executeUpdate()
>       keys.next();  //The result set contains generated keys;
>       int key = keys.getInt(1);
> However, Statement.getGeneratedKeys() does NOT work for Statement (Am
> I correct?)

You don't need to use RETURNING and executeQuery.  You can use a plain
insert statement and executeUpdate(sql, new String[]{"id"}) and the
results will be available via getGeneratedKeys.

Kris Jurka

pgsql-jdbc by date:

Previous
From: Kris Jurka
Date:
Subject: Re: [BUGS] BUG #5058: [jdbc] Silent failure with executeUpdate()
Next
From: Kris Jurka
Date:
Subject: Re: Wrong column default values