有时,当我们在后端下订单时 - 对于新客户,我们在提交时收到以下错误:
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 有关...
所以我进入 phpMyAdmin 并拉起enterprise_reward
桌子。打开操作选项卡。在存储引擎旁边它说 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