Maison > base de données > tutoriel mysql > Comment référencer une clé primaire multicolonne dans MySQL ?

Comment référencer une clé primaire multicolonne dans MySQL ?

DDD
Libérer: 2024-12-02 18:16:15
original
762 Les gens l'ont consulté

How Do I Reference a Multi-Column Primary Key in MySQL?

Référencement d'une clé primaire multi-colonnes dans MySQL

Lors de l'établissement de relations entre des tables, il est courant de rencontrer des scénarios dans lesquels une clé primaire comprend plusieurs colonnes. Dans MySQL, la création d'une clé étrangère pour une telle table nécessite une approche sur mesure.

Considérez un scénario dans lequel vous disposez d'une table avec la clé primaire suivante :

CREATE TABLE ProductAttributes (
  product_id INT NOT NULL,
  attribute_id INT NOT NULL,
  PRIMARY KEY (product_id, attribute_id)
);
Copier après la connexion

Maintenant, supposons que vous ayez une autre table qui doit référencer la table ProductAttributes. Pour établir une clé étrangère qui relie les deux tables, suivez ces étapes :

CREATE TABLE MyReferencingTable AS (
  [COLUMN DEFINITIONS]
  refcol1 INT NOT NULL,
  rofcol2 INT NOT NULL,
  CONSTRAINT fk_mrt_ot FOREIGN KEY (refcol1, refcol2)
                        REFERENCES ProductAttributes(product_id, attribute_id)
) ENGINE=InnoDB;
Copier après la connexion

En spécifiant les colonnes dans la table de référencement et les colonnes correspondantes dans la table de clé primaire, vous créez une contrainte de clé étrangère. Cette contrainte garantit que chaque ligne de la table de référencement a une clé primaire correspondante dans la table de clés primaires.

Considérations :

  • MySQL exige que les clés étrangères soient indexé, ce qui explique l'index sur les colonnes de référencement.
  • Utilisez la syntaxe de contrainte pour nommer la contrainte afin de faciliter modification ou suppression ultérieure.
  • N'oubliez pas qu'InnoDB applique les clés étrangères, tandis que 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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal