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 ?
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.
Alter table table2
Add Constraint nomcontrainte Foreign Key (numT) References table1 (numT)
On Update ... On Delete ...
‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒
Un peu de lecture !
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Tutorial D et algèbre relationnelle
Défense et illustration de la quatrième forme normale (4NF)
Modélisation Entité-Relation vs Relation universelle
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
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![]()
Partager