Mysql
 sql >> Database >  >> RDS >> Mysql

Chiave esterna a più colonne in MySQL?

Qualcosa del genere dovrebbe farlo:

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 richiede l'indicizzazione delle chiavi esterne, da cui l'indice nelle colonne di riferimento
  • L'uso della sintassi del vincolo ti consente di nominare un vincolo, rendendo più facile modificarlo e rimuoverlo in un secondo momento, se necessario.
  • InnoDB applica le chiavi esterne, MyISAM no. (La sintassi viene analizzata ma ignorata)