begin process at 2010 02 10 04:55:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Autre

 > 

Divers

 > 

définition d'une clé étrangère


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

définition d'une clé étrangère

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ée 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 Mettre à jour un table par rapport a une autre table [ par john44 ] Bonjour, J’ai créé une base de données (CalendarJVI.mdb) qui contient 2 tables : « CalendrierJVI » (table lié avec le calendrier d’Outlook) et « Cal 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 Ajout d'une clé primaire avec des doublons [ par jourdanne85 ] Bonjour à tous, Voilà mon problème. Je dois récupérer une table DM_CONSULTATION_PLAINTE (SQL Server Express). Cette table représente en fait les plai 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 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales