|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() |
Bonjour,
Dans la conception d'une base de données, je déclare dans une table A une clé primaire PK_A IDENTITY qui va devenir clé étrangère dans une table B. La table B possède une clé primaire PK_B IDENTITY elle aussi. En plus des clés primaires des ces deux tables, j'ai déclaré des clés métiers gérées à travers des index et des contraintes UNIQUE KEY. Ma question est lorsque j'insère des données dans la TABLE B, il faut que je récupère la PK_A de la table B car celle-ci est clé étrangère. Ceci implique de consulter la table A, retourné les PK_A que l'on veut insérer dans la TABLE B ... Peux-t-on récupérer les IDENTITY d'une table parent lors de l'insertion dans une table enfant, avec des TRIGGERS ou autres ... ? Merci d'éclairer ma lanternes ? Cordialement
__________________
while (true) echo 'comique'; Du comique de répétition ... Pour des questions de lisibilité, utilisez la balise [code] Si votre problème est résolu, n'oubliez pas le tag
|
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : juin 2007 Messages : 115 ![]() |
Bonjour,
Forcément si tu insère une ligne dans B, et que tu veux la relier à A, tu dois fournir la valeur de PK_A à inserer dans B. Aucun Trigger ne pourra deviner à ta place à quelle ligne de A tu veux relier l'enregistrement que tu es en train d'inserer dans B. Maintenant, si tu insère dans B à partir de A Code :
INSERT INTO B (B.FK_A) SELECT A.PK_A FROM A Code :
INSERT INTO B (B.FK_A) SELECT A.$IDENTITY FROM A Si tu pensait à autre chose, précise plus ta question. A+ |
|
|
00
|
|
|
#3 |
|
Membre actif
![]() |
Bonjour,
Ce n'est pas vraiment un problème mais l'idée proposée correspond. En fait, je veux éviter aux utilisateurs lors de l'insertion de données dans la table B, de récupérer la FOREIGN KEY dans A pour ensuite insérer dans B les lignes de données. Je souhaiterai faire cette opération automatiquement. Cette requête fonctionnerait : Code :
INSERT INTO B (B.FK_A) SELECT A.$IDENTITY FROM A Cordialement
__________________
while (true) echo 'comique'; Du comique de répétition ... Pour des questions de lisibilité, utilisez la balise [code] Si votre problème est résolu, n'oubliez pas le tag
|
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2009 Messages : 14 ![]() |
Dans ce genre de problème il faut toujours se reposer des questions sur ce que l'on veut.
A mon avis, le mode opératoire - Insertion des data A dans la table A - Insertion des data B dans une table temporaire tmp B - Insertion des data de tmp B dans la table B, avec une jointure sur la table A pour obtenir le pk_A |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() |
Il faut ajouter vos données dans A...
Puis au moment de l'ajout dans B faire une jointure sur, vous aurez les identity...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com