On Thu, 2007-10-18 at 09:17 -0400, Andrei Ilitchev wrote:
> Dear PostgreSQL jdbc experts,
>
> I created a table with identity:
> CREATE TABLE MAN (ID SERIAL, NAME VARCHAR(40), PRIMARY KEY (ID))
> then through jdbc connection inserted a row into the table,
> then attempted to select pk value back through the same jdbc connection
> using currval - that failed with "not yet defined in this session"
> exception.
>
> What's wrong here?
You haven't disabled JDBC autocommit for this connection. That means
that each statement gets executed in a separate transaction.
Since currval is only valid within the scope of a single transaction,
and you're executing your "select currval" from a separate transaction,
that's why you can't see it.
-- Mark Lewis