2011-11-29 13 views
7

मैं कुछ उत्पाद डेटा के साथ Magento के एक एसक्यूएल डंप आयात करने के लिए कोशिश कर रहा हूँ और मैं इस विदेशी कुंजी बाधा त्रुटि मिलती है:विदेशी कुंजी बाधा त्रुटि 1452 MySQL में - 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)` 

यह एसक्यूएल कोड है जो त्रुटि उत्पन्न कर रहा है:

-- 
-- 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; 

मैं एसक्यूएल प्रश्नों के साथ बहुत सहज नहीं हूं। क्या कोई मुझे बता सकता है कि यह प्रश्न क्या करता है और इसे हल करने के लिए मुझे मार्गदर्शन करता है? धन्यवाद।

उत्तर

16

आप catalog_eav_attribute में एक रिकॉर्ड जोड़ने के लिए कोशिश कर रहे हैं, लेकिन आप eav_attribute कि attribute_id

पर से मेल खाता है तो आप भी eav_attribute में थोक डेटा डालने रहे हैं में एक इसी रिकॉर्ड नहीं है, मुझे लगता है कि पहले करने की सलाह देते हैं, और तो डेटा संदर्भित करने के लिए आवश्यक catalog_eav_attribute पर विदेशी कुंजी से पहले तालिका में होगा।

यह article चर्चा करता है आप कैसे उपयोग कर सकते हैं:

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

आप है कि आप डेटा डालने कर रहे हैं बदल नहीं सकते हैं। तुम बस सुनिश्चित करें कि आपके डेटा विदेशी कुंजी का पालन करे एक बार सब कुछ डेटाबेस में डाला गया है, इससे पहले कि आप पुनः सक्षम कर सकते FOREIGN_KEY_CHECKS

+0

धन्यवाद, यह चाल है। कुछ अन्य 'वैकल्पिक तालिका' प्रश्न थे जिनके परिणामस्वरूप एक ही त्रुटि हुई थी लेकिन आपके सुझाव ने मुझे सफलतापूर्वक डेटा आयात करने में मदद की। धन्यवाद। – Nithin

+0

बहुत बहुत धन्यवाद! बैकअप आयात करने की कोशिश कर रहा था और यह मुद्दा था! यह मेरे लिए काम करता है और मैंने सफलतापूर्वक डीबी आयात करने में कामयाब रहा है! – petsoukos

0

मैं एक डेटाबेस की मरम्मत उपकरण का उपयोग किया है, के बाद कि SQL में ऐसा किया:

ड्रोप तालिका catalog_product_flat_1, catalog_product_flat_2, catalog_product_flat_3;

अब सूचकांक सफलतापूर्वक बनाया गया है।

संबंधित मुद्दे