Bonjour, j'ai un énorme trou de mémoire !!!
comment faire pour insérer une clé étrangère dans une table ?
table1 (numT, nom, prenom)
table2(numT2, numT, montant)
Merci beaucoup....
Bonjour, j'ai un énorme trou de mémoire !!!
comment faire pour insérer une clé étrangère dans une table ?
table1 (numT, nom, prenom)
table2(numT2, numT, montant)
Merci beaucoup....
Qu'entends-tu par "insérer une clé étrangère" ?
Ajouter une ligne dans une table ? Ou modifier la structure d'une table ?
Alter table table2
Add Constraint nomcontrainte Foreign Key (numT) References table1 (numT)
On Update ... On Delete ...
tu dois simplement mettre une des valeurs de numT contenue dans la la Table1
Si par exemple ta table 1 est composée de:
et que tu veux insérer "Bertrand" dans ta table 2, tu devras donner à numT de table 2 la valeur 1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 numT Nom ----------------- 1 Bertrand 2 Grégory 3 Antoine
oui je sais ;-)
mais dans la pratique, comment lui dire que Bertrand = 1 ?
En pratique on le fait pas en sql ça (en tout cas moi...), c'est surtout au niveau de ton application que tu récupères les valeurs de ta table1 et tu fais ton insert en fonction de l'élément choisi (où tu auras récupérer la valeur numT de l'élément choisi)
Sinon en sql tu aurais quelque chose comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 INSERT INTO Table2(numT2, numT, montant) SELECT 1, t.numT ,100 FROM Table1 AS t WHERE t.nom = 'Bertrand'
ok merci, donc la condition where est obligatoire ? , car j'ai des données, et je dois tout mettre dans deux tables en même temps...donc ce que je fais c'est un premier insert dans la table 1, je récupère la clé et je fais l'insert dans la table 2 avec l'ID, mais si entre temps quelqu'un créé un compte, l'ID que je récupère peut ne pas etre le bon...
voilà le soucis,
bonne journée...
il me semble, mais faudrait confirmation, que quand tu récupères l'id avec SELECT @@IDENTITY ça ne récupères que le dernier ID inséré par la session en cours.
Sinon, non le where n'est pas obligatoire... et si tu veux pouvoir insérer des données spécifiques par rapport à un nom, il me semble que le "CASE, WHEN" doit être possible
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager