Mysql
 sql >> Base de données >  >> RDS >> Mysql

Clé étrangère à plusieurs colonnes dans MySQL ?

Quelque chose comme ça devrait le faire :

CREATE TABLE MyReferencingTable AS (
   [COLUMN DEFINITIONS]
   refcol1 INT NOT NULL,
   rofcol2 INT NOT NULL,
   CONSTRAINT fk_mrt_ot FOREIGN KEY (refcol1, refcol2)
                        REFERENCES OtherTable(col1, col2)
) ENGINE=InnoDB;
  • MySQL nécessite que les clés étrangères soient indexées, d'où l'index sur les colonnes de référence
  • L'utilisation de la syntaxe de contrainte vous permet de nommer une contrainte, ce qui facilite sa modification et sa suppression ultérieure si nécessaire.
  • InnoDB applique les clés étrangères, pas MyISAM. (La syntaxe est analysée mais ignorée)