magento 1.7 : product_flat_data를 재 색인 할 수 없습니다


10

내 magento 데이터베이스를 다시 색인화하려고 시도하는 중에 다음 오류가 발생합니다.

제품 플랫 데이터 인덱스 프로세스 알 수없는 오류 : 'SQLSTATE [23000] 메시지와 함께 예외'PDOException ': 무결성 제약 조건> 위반 : 1452 하위 행을 추가하거나 업데이트 할 수 없음 : 외래 키 제약 조건 실패> ( d014505f., CONSTRAINT> FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_IDFOREIGN KEY ( entity_id)> catalog_product_entity> /www/htdocs/w00f5624/lib/Zend/Db/Statement/Pdo.php:228의 참조 (`e) '

이 문제를 어떻게 해결합니까 ??

답변:


28

Sander가 올바르게 언급 한대로 제품 플랫 테이블에 여전히 삭제 된 제품이 있으면이 오류가 발생합니다. 어쨌든 전체 테이블을 잘라낼 필요는 없습니다. 이 SQL 쿼리를 통해 이러한 제품을 찾을 수 있습니다.

SELECT pf1.entity_id
FROM catalog_product_flat_1 pf1
LEFT JOIN catalog_product_entity p ON pf1.entity_id = p.entity_id
WHERE ISNULL( p.entity_id ) 

그런 다음이 SQL 쿼리를 사용하여 수행 할 수있는 다음 항목을 삭제해야합니다.

DELETE pf1.*
FROM catalog_product_flat_1 pf1
LEFT JOIN catalog_product_entity p ON pf1.entity_id = p.entity_id
WHERE ISNULL( p.entity_id ) 

여기에서 가져옴 (독일어) : http://www.avs-webentwicklung.de/nc/blog/artikel/magento-fehler-beim-index-aufbau-sofortmassnahmen.html

조언이 더 필요한지 물어보십시오.


좋은 쿼리입니다. 정기적 인 정리 작업이나 필요할 때만 사용합니까?
Sander Mangel

고마워 :) 첫 번째 크레딧은 링크 작성자에게 속합니다. 이러한 오류가 발생할 때만 사용합니다. 주로 MAGMI를 사용하여 데이터베이스에서 데이터를 직접 삭제하는 경우입니다. 그리고 그들은 여전히 ​​드 rare니다. 나는 그것을 정기적으로 사용할 필요는 없지만 가능할 것이라고 생각합니다. 제품을 수동으로 관리 할 때 Magento는 저장 / 삭제시 인덱스 테이블을 관리합니다 (인덱스가 올바르게 구성된 경우).
simonthesorcerer

일부 설명은 여기에서 찾을 수 있습니다 : catgento.com/...을
드미트로 Zavalkin을

감사합니다 @simonthesorcerer,이 오류 :) 해결하기 위해 저를하는 데 도움이
Bijal Bhavsar

4

나는 전에이 문제를 겪었다. product_flat_data 테이블을 잘라낸 후 다시 색인화하여 문제를 해결했습니다. 기존 제품이 아닌 제품이 여전히 표에 있기 때문에 발생합니다.


안녕하세요 Sander, 해결책을 시도했지만 아무 일도 일어나지 않았습니다. 또한 catalog_product_flat_1도 잘 렸지만 제품 속성에 대한 인덱서는 작동하지 않습니다.
Sarvagya
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.