본문 바로가기
MySql

MySQL의 외래 키 제약 조건 오류 1452-Magento Import

by 베이스 공부 2020. 9. 26.
반응형

일부 제품 데이터와 함께 magento의 SQL 덤프를 가져 오려고하는데 외래 키 제약 조건 오류가 발생합니다.

`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 )`

이것은 오류를 일으키는 SQL 코드입니다.

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

나는 SQL 쿼리에 그다지 편하지 않다. 누군가가이 쿼리가 수행하는 작업을 설명하고이 문제를 해결하도록 안내해 주시겠습니까? 감사.

 

해결 방법

 

catalog_eav_attribute 에 레코드를 추가하려고하지만 attribute_id 와 일치하는 해당 레코드가 eav_attribute 에 없습니다.

대량 데이터를 eav_attribute 에 삽입하는 경우 먼저이를 수행하는 것이 좋습니다. 그런 다음 데이터를 참조하는 데 필요한 catalog_eav_attribute 의 외래 키 앞에 테이블에 있습니다. .


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

데이터를 삽입하는 순서를 변경할 수없는 경우. FOREIGN_KEY_CHECKS 를 다시 활성화하기 전에 모든 것이 데이터베이스에 삽입 된 후 데이터가 외래 키를 따르는 지 확인하기 만하면됩니다.

 

참조 페이지 https://stackoverflow.com/questions/8306585

 

 

반응형

댓글