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).
Más entradas de este motor
- 2003Can't connect to MySQL server (TCP/IP) (no se puede conectar al servidor MySQL por TCP/IP)
- 2006MySQL server has gone away (se perdió la conexión con el servidor MySQL)
- 1114The table is full (la tabla está llena)
- 1451Cannot delete or update a parent row: a foreign key constraint fails (no se puede eliminar/actualizar la fila padre: falla la restricción de clave foránea)
- 1452Cannot add or update a child row: a foreign key constraint fails (no se puede añadir/actualizar la fila hija: falla la restricción de clave foránea)
- 1366Incorrect string/integer value for column (valor de cadena/entero incorrecto para la columna)
- 1044Access denied for user to database (acceso denegado del usuario a la base de datos)