Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD
Autres SGBD Vos questions sur les autres SGBD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/06/2008, 17h24   #1
Membre expérimenté
 
Avatar de jmnicolas
 
Homme
Développeur informatique
Inscription : juin 2007
Messages : 299
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

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

Informations forums :
Inscription : juin 2007
Messages : 299
Points : 525
Points : 525
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.
jmnicolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 17h29   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 455
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 455
Points : 7 580
Points : 7 580
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
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 10h28   #3
Membre expérimenté
 
Avatar de jmnicolas
 
Homme
Développeur informatique
Inscription : juin 2007
Messages : 299
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

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

Informations forums :
Inscription : juin 2007
Messages : 299
Points : 525
Points : 525
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.
jmnicolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h42.


 
 
 
 
Partenaires

Hébergement Web