IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Récup du dernier id inséré


Sujet :

JDBC Java

  1. #1
    Membre actif Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Points : 221
    Points
    221
    Par défaut Récup du dernier id inséré
    Hello,

    Je voudrais récupérer l'id de mon insertion. J'ai fait comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Statement st = DbConnection.getInstance().getConnection().createStatement(
                        java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_UPDATABLE);
                st.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
                ResultSet rs = st.getGeneratedKeys();
                rs.next();
                return rs.getInt(1);
    L'erreur suivante est générée sur la ligne en gras:
    org.postgresql.util.PSQLException: Le renvoi des clés automatiquement générées n'est pas supporté.
    at org.postgresql.jdbc3.AbstractJdbc3Statement.executeUpdate(AbstractJdbc3Statement.java:139)
    at ch.iict.iscia.eascia.DbConnection.executeUpdateReturnId(DbConnection.java:272)
    at ch.iict.iscia.eascia.Restore.restore(Restore.java:184)
    at ch.iict.iscia.eascia.Restore.restore(Restore.java:49)
    at ch.iict.iscia.eascia.Restore.main(Restore.java:45)
    Pourquoi?

    Merci d'avance!

    A+

    Edit: jdk6, jdbc3 postgresql
    (\ _ /)
    (='.'=)
    (")-(")
    Deux règles du succès:
    1) Ne communiquez jamais à quelqu'un tout votre savoir...

  2. #2
    Membre éprouvé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Points : 1 253
    Points
    1 253
    Par défaut
    Je n'ai jamais utilisé postgresql, mais j'aurais tendance à dire que ton exception est on ne peut plus explicite: "Le renvoi des clés automatiquement générées n'est pas supporté". Donc postgresql ne peut pas éxécuter ta requête puisqu'il ne sait pas le faire.

    L'autre solution pour récupérer ton id consiste à récupérer uniquement la dernière ligne de ta table, et d'y lire l'ID.
    Si , et la ont échoué mais pas nous, pensez à dire et cliquez sur . Merci !

    Ici, c'est un forum, pas une foire. Il y a de respectables règles... à respecter !

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Yep, ça ressemble à une méthode JDBC non implémentée sur le driver fourni par postgre... Le seul moyen que je vois, c'est de refaire une requête avec comme condition les valeurs que tu viens d'insérer... en espérant qu'elles soient uniques !

    EDIT : ou alors de ne plus utiliser la génération auto de clé mais de passer par une Séquence et donc de disposer de la clé avant l'insertion.

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/12/2005, 07h03
  2. Réponses: 5
    Dernier message: 01/02/2005, 17h29
  3. Récupérer le dernier numéro inséré
    Par Hell dans le forum Access
    Réponses: 4
    Dernier message: 09/01/2005, 15h45
  4. Comment récupérer l'index du dernier élément inséré ?
    Par Didier100 dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/07/2004, 22h41
  5. Connaitre le dernier id inséré
    Par royrremi dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/05/2004, 16h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo