A voir également:
- Clé étrangère
- Clé windows 10 gratuit - Guide
- Cle usb non reconnu - Guide
- Clé bootable windows 10 - Guide
- Formater clé usb mac - Guide
- Recuperer cle windows - Guide
2 réponses
Utilisateur anonyme
16 avril 2008 à 10:36
16 avril 2008 à 10:36
Une clé étrangère signifie qu'il faut que la valeur existe dans la table principale pour effectuer l'insertion. C'est donc lorsque tu vas insérer dans la table participants qu'il va y avoir une vérification de faite.
En plus clair :
En revanche, l'insert suivant ne fonctionnera pas :
N'hésites pas si tu as d'autres questions ou si je n'ai pas été assez clair ;-)
En plus clair :
INSERT INTO DEFIFOOT VALUES('Text', 'Text'); INSERT INTO PARTICIPANTS VALUES('id', , 'nom_equipe', 'nom_manager ', 'stade', 'fondation', 'forme', 'lien_equipe', 'lien_manager', 'Text' ....);--> Cet Insert sera correct car 'Text' est bien une valeur qui existe dans la table DEFIFOOT.
En revanche, l'insert suivant ne fonctionnera pas :
INSERT INTO PARTICIPANTS VALUES('id', , 'nom_equipe', 'nom_manager ', 'stade', 'fondation', 'forme', 'lien_equipe', 'lien_manager', 'Bidon' ....);--> Cet Insert te retournera un message d'erreur car la valeur 'Bidon' n'existe pas dans la table DEFIFOOT
N'hésites pas si tu as d'autres questions ou si je n'ai pas été assez clair ;-)
Utilisateur anonyme
16 avril 2008 à 11:40
16 avril 2008 à 11:40
De rien pour mon aide c'est tout à fait normal ;-)
En ce qui concerne le ON DELETE CASCADE celui-ci permet effectivement de supprimer les enregistrements sur chacune des tables qui font référence à la donnée supprimée. En effet, cela sert à garder l'intégrité de tes données.
Tu dois insérer dans les 2 tables mais lors de la mise à jour ou la suppression d'un enregistrement tu ne te préoccupes pas des tables liées. (Si tu as positionné la valeur ON DELETE CASCADE ON UPDATE CASCADE)
Plus simplement :
Alex
En ce qui concerne le ON DELETE CASCADE celui-ci permet effectivement de supprimer les enregistrements sur chacune des tables qui font référence à la donnée supprimée. En effet, cela sert à garder l'intégrité de tes données.
Tu dois insérer dans les 2 tables mais lors de la mise à jour ou la suppression d'un enregistrement tu ne te préoccupes pas des tables liées. (Si tu as positionné la valeur ON DELETE CASCADE ON UPDATE CASCADE)
Plus simplement :
DELETE FROM DEFIFOOT WHERE intitulechamp = 'Text';Tous les enregistrements de la table participants qui ont comme valeur 'Text' pour le champs situation_defifoot seront également supprimés.
Alex
16 avril 2008 à 11:00
je te remercie pour ta réponse. Donc si j'ai bien compris une clé étrangère sert simplement à émettre une contrainte d'intégrité référentielle, mais je dois donc manuellement mettre à jour les données des deux tables?
Parce que j'ai entendu parlé d'un "ON DELETE CASCADE ON UPDATE CASCADE" permettant lors de la mis à jour(je crois) de modifier des deux côtés la même donnée.
Je vais donc essayer suivant ta réponse de recommencer mon script etc...si j'ai des souci, je te préviens, merci beaucoup de ton aide.
Amicalement, jeff