sql >> Base de Datos >  >> RDS >> Mysql

¿Clave externa de varias columnas en MySQL?

Algo como esto debería hacerlo:

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 requiere que se indexen claves foráneas, de ahí el índice en las columnas de referencia
  • El uso de la sintaxis de restricción le permite nombrar una restricción, lo que facilita su modificación y eliminación en un momento posterior si es necesario.
  • InnoDB impone claves foráneas, MyISAM no. (La sintaxis se analiza pero se ignora)