/ / ERROR 1215 (HY000) en línea: no se puede agregar restricción de clave externa - mysql

ERROR 1215 (HY000) en línea: No se puede agregar la restricción de clave externa - mysql

Obtuve el error "ERROR 1215 (HY000) en la línea 966: No se puede agregar la restricción de clave externa" cuando intento importar el volcado de la base de datos. Aquí está la línea 966:

CREATE TABLE `CATEGORIE_tags` (
`categorie_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`flag` tinyint(1) NOT NULL DEFAULT "0",
`tags_id` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `tag_id` (`tag_id`),
KEY `categorie_id` (`categorie_id`),
KEY `FKACB212415C86F159` (`categorie_id`),
KEY `FKACB21241925C59A` (`tag_id`),
CONSTRAINT `CATEGORIE_tags_ibfk_1` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`),
CONSTRAINT `CATEGORIE_tags_ibfk_2` FOREIGN KEY (`categorie_id`) REFERENCES `CATEGORIE` (`CAT_ID`),
CONSTRAINT `FKACB212415C86F159` FOREIGN KEY (`categorie_id`) REFERENCES `CATEGORIE` (`CAT_ID`),
CONSTRAINT `FKACB21241925C59A` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1331 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

¿Sabes por qué? Gracias

Respuestas

1 para la respuesta № 1

Si importa tablas en un orden incorrecto, las comprobaciones de restricciones fallarán.
Ejemplo: crea la tabla Category_tags antes de la tabla de etiquetas, y Category_tags hace referencia a las etiquetas.

Solución: deshabilite las comprobaciones de clave externa al importar.

SET FOREIGN_KEY_CHECKS = 0;

--  / import dump code here /

SET FOREIGN_KEY_CHECKS = 1;

http://www.stetsenko.net/2008/10/mysql-how-to-ignore-checking-of-foreign-key-constraints-for-innodb-tables/