On Thu, 18 Oct 2007, Mark Lewis wrote:
> 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.
>
False. currval maintains state across transactions:
jurka=# create sequence myseq;
CREATE SEQUENCE
jurka=# begin;
BEGIN
jurka=# select nextval('myseq');
nextval
---------
1
(1 row)
jurka=# commit;
COMMIT
jurka=# select currval('myseq');
currval
---------
1
(1 row)