magento 1.7: Không thể reindex sản phẩm_flat_data


10

Tôi gặp lỗi sau khi cố gắng reindex cơ sở dữ liệu magento của mình ..

Lỗi không xác định chỉ mục dữ liệu phẳng của sản phẩm: ngoại lệ 'PDOException' với thông báo 'SQLSTATE [23000]: Ràng buộc toàn vẹn> vi phạm: 1452 Không thể thêm hoặc cập nhật một hàng con: ràng buộc khóa ngoại không thành công> ( d014505f., CONSTRAINT> FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_IDFOREIGN KEY ( entity_id)> TÀI LIỆU THAM KHẢO catalog_product_entity(`e) 'trong> /www/htdocs/w00f5624/lib/Zend/Db/Statement/Pdo.php:228

Làm thế nào để tôi sửa lỗi này ??

Câu trả lời:


28

như Sander đã nêu chính xác, các sản phẩm đã xóa vẫn có trong bảng phẳng của sản phẩm gây ra lỗi này. Dù sao, việc cắt toàn bộ bảng sẽ không cần thiết. Bạn có thể tìm thấy các sản phẩm này bằng truy vấn SQL này:

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 ) 

Sau đó, bạn sẽ phải xóa các mục này, có thể được thực hiện bằng truy vấn SQL này:

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 ) 

Lấy từ đây (tiếng Đức): http://www.avs-webentwicklung.de/nc/blog/artikel/magento-fehler-beim-index-aufbau-sofortmassnahmen.html

Hỏi tôi nếu bạn cần tư vấn thêm.


Truy vấn đẹp, bạn có sử dụng chúng cho một nhiệm vụ dọn dẹp định kỳ hay chỉ khi được yêu cầu?
Sander Mangel

Cảm ơn :) Tuy nhiên, các khoản tín dụng đầu tiên thuộc về tác giả của liên kết. Tôi chỉ sử dụng chúng khi xảy ra lỗi như vậy, phần lớn là khi dữ liệu bị xóa trực tiếp khỏi cơ sở dữ liệu, tức là với MAGMI. Và chúng vẫn còn hiếm. Tôi đã không phải sử dụng nó định kỳ, mặc dù tôi nghĩ rằng nó sẽ có thể. Khi bạn quản lý sản phẩm theo cách thủ công, Magento sẽ chăm sóc các bảng chỉ mục khi xóa / bật xóa (khi các chỉ mục được cấu hình đúng cách).
simonthesorcerer 22/03/13

Một số giải thích có thể được tìm thấy ở đây: catgento.com/
Dmytro Zavalkin

@simonthesorcerer Cảm ơn, nó giúp tôi khắc phục lỗi này :)
Bijal Bhavsar 16/12/13

4

Tôi đã có vấn đề này trước đây. Tôi đã giải quyết nó bằng cách cắt bớt các bảng sản phẩm_flat_data và sau đó reindexing. Nó gây ra bởi các sản phẩm không tồn tại vẫn còn trong bảng.


Xin chào Sander, tôi đã thử giải pháp nhưng không có gì xảy ra với tôi. Tôi cũng đã cắt danh mục_product_flat_1 nhưng trình chỉ mục cho các thuộc tính sản phẩm không hoạt động.
Sarvagya
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.