|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre expérimenté
![]() Développeur informatique Inscription : juin 2007 Messages : 299 ![]() |
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. |
|
|
00
|
|
|
#2 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 455 ![]() |
Regarde du côté des fonctions CURRVAL/ NEXTVAL
__________________
Modérateur Langage 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 ![]() |
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() Développeur informatique Inscription : juin 2007 Messages : 299 ![]() |
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. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com