Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : définition d'une clé étrangère [ Autre / Divers ] (gillespockpock)

vendredi 20 juin 2008 à 08:27:00 | définition d'une clé étrangère

gillespockpock

Bonjour, j'ai une question qui m'obstine, je suis en train de développer une application de création de bases de données,

je ne trouve nul par de réponse claire et complète, peut-être pourrez vous m'aider:

Dans une base de données, peut-on avoir une clé étrangère dans une table, faisant référence à seulement une partie de la clé primaire d'une autre table? Autrement dit: une clé étrangère comporte -t-elle forcément tous les champs de la clé primaire vers laquelle elle fait référence?

Si oui, pourrai-je avoir un exemple?


merci

samedi 21 juin 2008 à 00:06:24 | Re : définition d'une clé étrangère

theguitou

Salut,

Cela dépend du SGDB que tu utilise, et des champs de la clé primaire auxquels tu veux faire référence ...

Par exemple avec MySQL, un index (donc par exemple une clé primaire) définit sur ABC, peut être utilisé sur ABC, AB, ou A (mais pas sur AC, BC, B ou C).

Exemple :

CREATE TABLE table1 (A INT, B INT, C INT, PRIMARY KEY (A,B,C)) Engine=InnoDB;

CREATE TABLE table2 (A INT, B INT, C INT, FOREIGN KEY (A, B,C) REFERENCES table1(A,B,C)) Engine=InnoDB; => OK

CREATE TABLE table3 (A INT, B INT, C INT, FOREIGN KEY (A, B) REFERENCES table1(A,B)) Engine=InnoDB; => OK

CREATE TABLE table4 (A INT, B INT, C INT, FOREIGN KEY (A) REFERENCES table1(A)) Engine=InnoDB; => OK

CREATE TABLE table5 (A INT, B INT, C INT, FOREIGN KEY (A, C) REFERENCES table1(A, C)) Engine=InnoDB; => Problème

Faute de doc clair, le mieux est encore de tester !



Cette discussion est classé dans : table, données, clé, définition, étrangère


Répondre à ce message

Sujets en rapport avec ce message

SELECT sur une table avec clé étrangère en boucle sur une table [ par Sieurcoug ] Bonjour,Je vous expose mon souci qui va vous paraître simple (vu mon niveau en SQL ;)) :Voilà, j'ai besoin de lister les enregistrements de la table S Clé primaire , clé étrangère [ par emmanuel9 ] Bonjour à tous, "Aieuuuuuuu" m'a dit hier que une table n'avais pas besoin de contenir une clée primaire J'ai oublier de lui demander  : Si ma tabl SqlServer, débutant, problème de clé étrangère. [ par xaeris ] Bonjour a tous !!Je crée actuellement une base de données sous SqlServer 2005 Express.Je suis confronté a un petit soucis, du a mon manque de connaiss Comment éviter les erreurs de clé en SQL [ par Jenojen ] Bonjour,J'aimerais savoir comment éviter d'enregistrer deux fois les mêmes données lorsqu'on passe par le SQL. En Afficher les données d'une table dans SQL Server 200 dans un tableau en HTML [ par malbackt ] Bonjour,j'ai créé une base de données dans SQL server 2000, cette dernière contient la table "utilisateur", et je voudrais afficher les données de cet Requête select une ligne sur deux [ par Mayzz ] Bonjour à tous,Voila, je fais un site en ASP.NET et j'ai une requête spécifique à faire.Je souhaiterai faire une requête select dans un dataset (Table Jointure table clé composé [ par didygwatinik ] Bonjour, Je me pose une question quand je veux faire une jointure, est-il préférable de la faire sur la clé primaire de la table ?Si j'ai une table av Créer un enregistrement à partir de plusieurs [ par fredgil ] Bonjour,Pour transmettre certaines données de ma BDD vers celle d'un organisme partenaire, j'ai besoin de réorganiser mes données de la manière suivan Table lock [ par Pat35 ] Bonjour,J'ai un problème de lock sur une table.Mon architecture est la suivante : - Une table de données avec des triggers qui enregistrent les PK des Créer une table avec plusieurs autre table. [ par Hirald ] Bonjour,J'ai créer une base de données Access à partir du catalogue d'une compagnie (pour la compagnie) sauf que un manque de communication a causé le


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,608 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.