場合によっては、バックエンドで注文を行うと、新しい顧客の場合、送信時に次のエラーが発生します。
Order saving error: SQLSTATE[23000]: Integrity constraint violation: 1452
Cannot add or update a child row: a foreign key constraint fails
`artizara_artizara/enterprise_reward`, CONSTRAINT `FK_REWARD_CUSTOMER_ID`
FOREIGN KEY (`customer_id`) REFERENCES customer_entity` (`entity_id`)
ON DELETE CASCADE ON UPDATE CASCADE)
エラーログを調べたところ、次のように書かれています。
exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint
violation: 1452 Cannot add or update a child row: a foreign key constraint fails
(`artizara_artizara/enterprise_reward`, CONSTRAINT `FK_REWARD_CUSTOMER_ID`
FOREIGN KEY (`customer_id`) REFERENCES `customer_entity` (`entity_id`) ON DELETE
CASCADE ON UPDATE CASCADE)' in /chroot/home/artizara/artizara.com/html/lib/Zend/Db/Statement/Pdo.php:228
私はこれをgoogle/Magentoフォーラムで調査しましたが、テーブルがInnobDBではないことに関係していると言う人もいます...
enterprise_reward
それで私はphpMyAdminに入り、テーブルを引き上げました。[操作] タブを開きました。Storage Engineの横にInnoDB と表示されているので、そこに設定されていると思います...
他の人は、孤立したデータを検索して、問題の SQL ステートメントを作成しようとしました。これが正確に何を探しているのかよくわからないので、SQLステートメントをまとめる方法がわかりません(とにかく、私は少し新しいです)。
誰かがこれを理解するのを手伝ってくれませんか(孤立したデータを検索するなどして)、そもそもなぜこれが起こったのか教えてください。
参考までに-これがすべての新規顧客(管理者で注文したとき)で発生するのか、それとも時々発生するのかについて、彼らは私に明確な画像を提供することはできません-そのため、その情報は(まだ)ありません...
編集 5/16 @ 2:30p:
このSQLコードで孤児を探してみましたが、結果が返されませんでした...
SELECT
*
FROM
enterprise_reward
LEFT
JOIN
customer_entity
ON enterprise_reward.customer_id = customer_entity.entity_id
WHERE
customer_entity.entity_id IS NULL