SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败

Posted

技术标签:

【中文标题】SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败【英文标题】:SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails 【发布时间】:2012-04-19 17:53:52 【问题描述】:

我已使用link 的 SQL 脚本删除所有测试产品数据和类别。然后我阅读了“产品”类别,然后导入了我的 CSV 文件,Magento 在检查数据时说这很好,但是当我单击导入时,我收到以下错误:

SQLSTATE[23000]:违反完整性约束:1452 无法添加或 更新子行:外键约束失败 (gare6221_qshed/catalog_product_website, 约束 FK_CAT_PRD_WS_PRD_ID_CAT_PRD_ENTT_ENTT_ID 外键 (product_id) 参考catalog_product_entity (entity_id) 删除级联)

有什么想法吗?我真的很纠结这个。

谢谢

【问题讨论】:

【参考方案1】:

此问题已得到修复,问题是由于 SKU 长度超过 64 个字符。

【讨论】:

与我合作,只是我有一个 SKU 为空的产品。【参考方案2】:

我要说的第一件事是避免直接对数据库进行操作。它很快就会变得一团糟(正如你正在学习的那样)。

话虽如此,您似乎在某处可能有一些剩余数据。也许是catalog_product_website?

【讨论】:

您好,谢谢您的回复。事实证明,这与 CSV 中的某些 SKU 长度超过 64 个字符有关。恢复完整的 cPanel 备份后,我将旧数据留在其中并尝试导入并得到相同的错误。当我减少提到的 SKU 时,它起作用了。所以将来要记住一些事情。 哇。从来没想过会这样。好东西与大家分享。【参考方案3】:

也遇到了这个问题,虽然 SKU 似乎不是原因(我们的 SKUS 的格式是 'FOO-####'),所以它们都没有接近 64 个字符。

当我选择csv文件并选择检查数据时,它通过了检查:

Checked rows: 1718, checked entities: 47, invalid rows: 0, total errors: 0
File is valid! To start import process press "Import" button

但是,在选择导入后,我收到此错误:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`magentoss`.`catalog_product_option_type_value`, CONSTRAINT `FK_CAT_PRD_OPT_TYPE_VAL_OPT_ID_CAT_PRD_OPT_OPT_ID` FOREIGN KEY (`option_id`) REFERENCES `catalog_product_option` (`option_id`) ON D), query was: INSERT INTO `catalog_product_option_type_value` (`option_type_id`,`sort_order`,`sku`,`option_id`) VALUES (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?), (?, ?, ?, ?)

检查产品列表后,文件似乎已上传,因为我的所有数据都已更新,所以不完全确定发生了什么。

【讨论】:

以上是关于SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败的主要内容,如果未能解决你的问题,请参考以下文章

SQLSTATE[23000]:完整性约束违规 1452 无法添加或更新子行:外键约束失败

Innobyte 插件问题:SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行

SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败

Laravel:正确保存后返回重定向抛出 SQLSTATE [23000]:完整性约束违规

SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败 - Laravel

Laravel 7 错误 - SQLSTATE [23000]:完整性约束违规:1048 列 'first_name' 不能为空