Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mehrspaltiger Fremdschlüssel in MySQL?

So etwas sollte es tun:

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 erfordert, dass Fremdschlüssel indiziert werden, daher der Index für die referenzierenden Spalten
  • Die Verwendung der Einschränkungssyntax ermöglicht es Ihnen, eine Einschränkung zu benennen, was es einfacher macht, sie zu einem späteren Zeitpunkt zu ändern und bei Bedarf zu löschen.
  • InnoDB erzwingt Fremdschlüssel, MyISAM nicht. (Die Syntax wird geparst, aber ignoriert)