0

SQLSTATE[23000]: 整合性制約違反: 1452 子行を追加または更新できません: 外部キー制約が失敗しました ( my_magento/catalog_category_product_index, CONSTRAINT FK_CAT_CTGR_PRD_IDX_CTGR_ID_CAT_CTGR_ENTT_ENTT_IDFOREIGN KEY ( category_id) REFERENCES catalog_category_entity( entity_id) O)

これは、データを再インデックス化しようとしたときに発生するエラーです (ここでアドバイスされているように出力されます: 「製品のインポート後、再インデックス化プロセスに問題がありました。」 )

しかし、その解決策はまったく役に立ちません。どこで検索すればよいか教えてください。私は MySQL の外部キーに詳しくありません。破損したレコードを検出する方法は? それらを修正する原則は何ですか?

4

1 に答える 1

1

商品の 1 つが、存在しない category_id を参照しています。通常、これは admin-backend を介して編集する場合には発生しません。データベースでカテゴリを直接削除しましたか?

カテゴリを参照している製品を確認し、その参照を削除する必要があります。カテゴリと製品の間の参照は、catalog_category_product に保存されます。catalog_category_entity のカテゴリ。行を見つけるには、そのクエリを使用できます。

SELECT * FROM catalog_category_product ccp
LEFT JOIN catalog_category_entity cce ON ccp.category_id = cce.entity_id
WHERE cce.entity_id IS NULL 
于 2013-02-02T18:00:18.503 に答える