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

Autres SGBD Discussion :

[H2Database] Obtenir la dernière ligne créée dans une table


Sujet :

Autres SGBD

  1. #1
    Membre éprouvé Avatar de jmnicolas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2007
    Messages : 427
    Points : 976
    Points
    976
    Par défaut [H2Database] Obtenir la dernière ligne créée dans une table
    Bonjour,

    Outils : Eclipse / Java - H2Database (BDD java embarquée)
    Problème : depuis un programme je remplis une table ITINERAIRE.

    La clé primaire / identifiant unique de cette table est générée automatiquement par la BDD.
    Cette clé est aussi clé étrangère dans une autre de mes table SUCCESSION_ITINERAIRE.

    Je veux donc récupérer la PK de ITINERAIRE (immédiatement après avoir entré la ligne) pour la placer en FK dans SUCCESSION_ITINERAIRE toujours depuis mon programme.

    Première idée : faire un select sur chaque ligne que je rentre afin de récupérer la PK générée.
    Ca me parait pas optimal de faire à chaque fois un accès à la base, de plus je ne suis pas absolument certain que les lignes que je rentre dans la BDD sont toutes différentes : mon select pourrait me retourner plus d'une clé, je serais bien embêté.

    Deuxième idée : récupérer la dernière ligne créée dans la table. Même inconvénient de ressource que la première idée mais je suis sûr de n'avoir qu'une ligne retournée.
    Par contre je ne sais pas si c'est possible.

    Troisième idée : je crée mon identifiant unique depuis le programme lui même, bien que je n'aie absolument aucune idée sur la génération d'un ID unique en Java. Ca me parait le moins risqué et le plus simple, toutefois on m'a répété tant et plus qu'il faut laisser la logique de gestion des données à la base et pas au programme.

    A vos avis !
    The greatest shortcoming of the human race is our inability to understand the exponential function. Albert A. Bartlett

    La plus grande lacune de la race humaine c'est notre incapacité à comprendre la fonction exponentielle.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 783
    Points
    30 783
    Par défaut
    Regarde du côté des fonctions CURRVAL/ NEXTVAL
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre éprouvé Avatar de jmnicolas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2007
    Messages : 427
    Points : 976
    Points
    976
    Par défaut
    Tu m'as mis sur la piste : j'avais déclaré mon ID unique en type IDENTITY et j'ai trouvé dans la doc une fonction IDENTITY() qui me retourne la dernière valeur créée.

    Une séquence classique aurait sans doute été plus souple (vu que j'ai d'autres tables qui utilisent IDENTITY) mais bon ça marche comme ça.

    Merci
    The greatest shortcoming of the human race is our inability to understand the exponential function. Albert A. Bartlett

    La plus grande lacune de la race humaine c'est notre incapacité à comprendre la fonction exponentielle.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/08/2009, 15h43
  2. Recuperer la dernière ligne entrée dans une table
    Par ITCsoft54 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 07/11/2007, 20h39
  3. Renvoyer la ligne selectionnée dans une table
    Par vallgui dans le forum WinDev
    Réponses: 3
    Dernier message: 21/06/2007, 12h42
  4. Réponses: 2
    Dernier message: 30/11/2005, 09h55
  5. Nombre de ligne maxi dans une table ACCESS
    Par ygiraudeau dans le forum Access
    Réponses: 2
    Dernier message: 05/09/2005, 17h23

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