2011-11-29 20 views
7

Estoy tratando de importar un volcado SQL de Magento, junto con algunos datos de productos y me sale este error de restricción de clave externa:error Exteriores restricción de clave 1452 en MySQL - importación Magento

`ERROR 1452 (23000) at line 231680: Cannot add or update a child row: a foreign key constraint fails: 
`magento`.`#sql-b33_27`, CONSTRAINT `FK_CATALOG_COMPARE_ITEM_CUSTOMER_ID_CUSTOMER_ENTITY_ENTITY_ID` FOREIGN KEY (`customer_id`) REFERENCES `customer_entity` (`entity_id`) ON DELETE CASCADE ON)` 

Este es el código SQL cuales está causando el error:

-- 
-- Constraints for table `catalog_eav_attribute` 
-- 
ALTER TABLE `catalog_eav_attribute` 
    ADD CONSTRAINT `FK_CATALOG_EAV_ATTRIBUTE_ATTRIBUTE_ID_EAV_ATTRIBUTE_ATTRIBUTE_ID` FOREIGN KEY (`attribute_id`) REFERENCES `eav_attribute` (`attribute_id`) ON DELETE CASCADE ON UPDATE CASCADE; 

No estoy muy cómodo con las consultas sql. ¿Podría alguien explicarme qué hace esta consulta y guiarme para resolver esto? Gracias.

Respuesta

16

Usted está intentando agregar un registro en catalog_eav_attribute, pero que no tiene un registro correspondiente en eav_attribute que coincide con el attribute_id

Si también está introduciendo sus datos a granel en eav_attribute, yo recomendaría que primero, y entonces los datos estarían en la tabla antes de que se necesite la clave foránea en catalog_eav_attribute para hacer referencia a ella.

Este article discute cómo se puede utilizar:

SET FOREIGN_KEY_CHECKS = 0; 
--Do your update here 
SET FOREIGN_KEY_CHECKS = 1; 

Si no puede cambiar el orden en que se va a insertar datos. Usted sólo tiene que asegurarse de que sus datos sigue las claves externas una vez que todo se ha insertado en la base de datos, antes de que pueda volver a habilitar el FOREIGN_KEY_CHECKS

+0

Gracias, eso funcionó. Hubo algunas otras consultas de 'ALTER TABLE' que daban como resultado un error similar, pero su sugerencia me ayudó a importar con éxito los datos. Gracias. – Nithin

+0

¡Muchas gracias! Estaba tratando de importar una copia de seguridad y tuve este problema! ¡Funcionó para mí y pude importar la base de datos con éxito! – petsoukos

0

He utilizado una herramienta de reparación de base de datos, después de que hicieron esto en SQL:

TABLA DE DESCARGAS catalog_product_flat_1, catalog_product_flat_2, catalog_product_flat_3;

Ahora el índice está construido con éxito.

Cuestiones relacionadas