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

4 respostas
pgnt

Olás

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

PreparedStatement 	stt = conn.prepareStatement("insert into cliente(nome) values('fulano') returnind id_cliente", PreparedStatement.RETURN_GENERATED_KEYS);

stt.executeUpdate();
ResultSet rsId = stt.getGeneratedKeys();
Há uma SQLException do postgres ao executar o "PreparedStatement".
PSQLException: Retorno de chaves geradas automaticamente não é suportado.

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

abs

4 Respostas

ramilani12

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

pgnt

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

A

Olá,

Tente utilizar

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

Um abraço,
Adriano Anderson.

D

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

Criado 22 de junho de 2008
Ultima resposta 20 de abr. de 2009
Respostas 4
Participantes 4