DBAtlas · Atlas de operaciones de bases de datos

1215: Cannot add foreign key constraint (no se puede añadir la restricción de clave foránea)

MySQL

¿Qué significa?

No se puede crear la restricción de clave foránea que se está definiendo; MySQL no puede añadir la restricción.

¿Por qué ocurre?

Discrepancia de tipo de dato/longitud/signo (signed-unsigned) o de conjunto de caracteres/collation entre la columna hija y la referenciada, ausencia de un índice/PRIMARY KEY adecuado en la columna referenciada, tablas con distintos motores de almacenamiento (una es MyISAM) o la tabla referenciada aún no existe.

Cómo solucionarlo

Asegúrese de que los tipos de columna de ambos lados sean EXACTAMENTE iguales (p. ej., ambos INT UNSIGNED). Verifique que la columna referenciada esté respaldada por un índice (normalmente PRIMARY KEY o UNIQUE). Asegúrese de que ambas tablas sean InnoDB. Use el mismo charset/collation para claves de cadena. Para más detalles: SHOW ENGINE INNODB STATUS (LATEST FOREIGN KEY ERROR).

Abrir en DBAtlas →

Más entradas de este motor