| From: | Ken Johanson <pg-user(at)kensystem(dot)com> | 
|---|---|
| To: | pgsql-jdbc(at)postgresql(dot)org | 
| Cc: | Michael Paesold <mpaesold(at)gmx(dot)at> | 
| Subject: | Re: Synthesize support for Statement.getGeneratedKeys()? | 
| Date: | 2007-01-20 05:59:30 | 
| Message-ID: | 45B1AFC2.5060900@kensystem.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-jdbc | 
> 
> If someone has pointers to where the augmentaion code should be placed 
> (org.tgresql.jdbc3.Jdbc3ResultSetMetadata I presume), and also the 
> protocol (separate query to the server?, or append RETURNING clause to 
> the DML?).
> 
> Also I cant remember - is it true that when inserting multuple VALUES, 
> that only the first (or last) SEQUENCE can be retrived, or can I 
> populate a resultset using the RETURNING data from by the server?
> 
Answering my own question here... sort of :)
http://www.postgresql.org/docs/current/static/sql-insert.html
In the case of inserting multiple values (say 3 rows), is there a clever 
way to get the last 3 sequences via native SQL? Or would the JDBC code 
need to synthesize them?: (very simplified)
...exec
rs.next();//single key returned
Object id = rs.getObject();
Object[] keys = new Object[insertedRowCount];
for (; keys.length; i++)
   keys[i] = increment(id);
myPGResultSet.populate(userDeclaredKeyNameOrIdx, keys);//hypothetical - 
i didn't look at the API yet, sorry
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Paesold | 2007-01-20 11:08:41 | Re: Synthesize support for Statement.getGeneratedKeys()? | 
| Previous Message | Ken Johanson | 2007-01-20 05:43:53 | Re: Synthesize support for Statement.getGeneratedKeys()? |