Exception ao tentar pegar ID ao inserir no banco (PostgreSQL)

Olás

Estou usando uma query retornar a ID daquilo que estou inserindo (parecido com o exemplo abaixo):

[code]
PreparedStatement stt = conn.prepareStatement(“insert into cliente(nome) values(‘fulano’) returnind id_cliente”, PreparedStatement.RETURN_GENERATED_KEYS);

stt.executeUpdate();
ResultSet rsId = stt.getGeneratedKeys();[/code]

Há uma SQLException do postgres ao executar o “PreparedStatement”.

Alguém sabe o que se sucede?
Estou usando o PostgreSQL.

abs

Acho q depende da versao do driver.
E se banco de dados suporta isto que vc quer,

Sim, eu já verifiquei isso.

Ele suporta desde a versão 8.1.

Estou com a versão 8.3 e biblioteca do JDBC postgresql-8.3-603.jdbc4

tks

Olá,

Tente utilizar

pstmt = conn.prepareStatement(sql);
ResultSet key = pstmt.executeQuery();
if(key.next()){
   codigo = key.getLong(1);
}

Um abraço,
Adriano Anderson.

acho que se eu entendi tem que fazer uma “gambia”: ve ai: http://douglashiura.blogspot.com/2009/04/jdbc-postgresql-pegar-keys-na-insercao.html