magento 1.7: Неможливо перевстановити product_flat_data


10

Я отримую таку помилку під час спроби перевстановити свою базу даних magento ..

Невідома помилка процесу індексу даних продукту: виняток 'PDOException' з повідомленням 'SQLSTATE [23000]: обмеження цілісності> порушення: 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

Як я можу це виправити ??

Відповіді:


28

як правильно заявив Сандер, видалені продукти, які все ще присутні в плоскій таблиці продукту, викликають цю помилку. У будь-якому разі, обрізання всієї таблиці не знадобиться. Ви можете знайти ці продукти за цим 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

Запитайте мене, якщо вам потрібно більше поради.


Хороший запит, чи використовуєте ви їх для періодичного очищення чи лише за потреби?
Сандер Мангел

Дякую :) Хоча кредити для першого належать автору посилання. Я використовую їх лише тоді, коли трапляється така помилка, яка є здебільшого, коли дані видаляються безпосередньо з бази даних, тобто з MAGMI. І вони все ще рідкісні. Мені ще не довелося користуватися періодично, хоча, думаю, це було б можливо. Під час керування продуктами вручну Magento опікується таблицями індексів для збереження / видалення (якщо індекси налаштовані належним чином).
simonthesorcerer

Деякі пояснення можна знайти тут: catgento.com/…
Дмитро Завалкін

@simonthesorcerer Спасибі, це допомагає мені вирішити цю помилку :)
Bijal Bhavsar

4

я мав цю проблему раніше. Я вирішив це шляхом обрізки таблиць product_flat_data та після цього повторного деіндексації. Це викликано неіснуючими продуктами, які все ще є в таблиці.


Привіт Сандер, я спробував рішення, але для мене нічого не трапилося, я також урізав каталог_продукт_флат_1, але індекс для атрибутів продукту не працює.
Сарвагія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.