This is a discussion on returning autogenerated keys within the pgsql Interfaces jdbc forums, part of the PostgreSQL category; --> I am trying to use PostgreSQL and while trying to do a prototype, I am getting an error. org.postgresql.util.PSQLException: ...
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| I am trying to use PostgreSQL and while trying to do a prototype, I am getting an error. org.postgresql.util.PSQLException: Returning autogenerated keys is not supported. at org.postgresql.jdbc3.AbstractJdbc3Statement.execut eUpdate(AbstractJdbc3Statement.java:138) In the TODO list (INSERT section), it is mentioned that "This is useful for returning the auto-generated key for an INSERT. One complication is how to handle rules that run as part of the insert." Does it mean PostgreSQL does not support returning autogenerated keys? I am using 803 version. Thanks In Advance Srinivas Tata |
| ||||
| Yes, that is correct, postgres does not support returning auto-generated keys. You can get the auto generated keys by calling SELECT currval('<sequence-name>'); on the same connection. We have remote users and latency is an issue. We combine the insert and the fetch of the remote keys, which does everything in a single trip to the database. sql = "INSERT ....; SELECT currval('<sequence-name>')"; // Prepare the statement PreparedStatement st = connection.prepareStatement(sql); // Set the insert values ... // Insert the row st.execute(); int nInserted = st.getUpdateCount(); if (nInserted == 1 && st.getMoreResults()) { ResultSet rs = st.getResultSet(); if (rs.next()) result = rs.get(1); } That does everything in one go. Cheers, Adriaan Srinivasa_Tata@hud.gov wrote: > > > I am trying to use PostgreSQL and while trying to do a prototype, I am > getting an error. > > org.postgresql.util.PSQLException: Returning autogenerated keys is not > supported. > at > org.postgresql.jdbc3.AbstractJdbc3Statement.execut eUpdate(AbstractJdbc3Statement.java:138) > > In the TODO list (INSERT section), it is mentioned that "This is > useful for returning the auto-generated key for an INSERT. One > complication is how to handle rules that run as part of the insert." > > Does it mean PostgreSQL does not support returning autogenerated keys? > I am using 803 version. > > Thanks In Advance > > Srinivas Tata_ > > _ > > ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match |