Maison >base de données >tutoriel mysql >Comment créer des clés étrangères faisant référence à des clés primaires composites dans MySQL ?

Comment créer des clés étrangères faisant référence à des clés primaires composites dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-18 09:28:11642parcourir

How to Create Foreign Keys Referencing Composite Primary Keys in MySQL?

Création de clés étrangères faisant référence à des clés primaires composites dans MySQL

MySQL permet la création de clés étrangères faisant référence à des clés primaires composites. Cela peut être utile lorsque vous avez une table avec une clé primaire composée de plusieurs colonnes et que vous devez établir une relation entre celle-ci et une autre table.

Comment implémenter :

Pour créer une clé étrangère faisant référence à une clé primaire composite, vous devez définir les colonnes de clé étrangère et spécifier les colonnes de clé primaire référencées à l'aide de la contrainte FOREIGN KEY. Voici un exemple :

CREATE TABLE MyReferencingTable (
   [COLUMN DEFINITIONS]
   refcol1 INT NOT NULL,
   refcol2 INT NOT NULL,
   CONSTRAINT fk_mrt_ot FOREIGN KEY (refcol1, refcol2)
   REFERENCES OtherTable(col1, col2)
) ENGINE=InnoDB;

Points clés :

  • MySQL exige que les colonnes de clé étrangère soient indexées, alors assurez-vous que les colonnes de référence ont un index.
  • L'utilisation de la syntaxe CONSTRAINT fk_nm vous permet de nommer la contrainte, ce qui la rend plus facile à gérer.
  • En utilisant le moteur de stockage InnoDB, vous appliquez des contraintes de clés étrangères (MyISAM les ignore).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn