我正在尝试将列s_phone_mobile
从oc_t_user
表填充到mysql数据库中的oc_t_item
表。我使用以下查询:
INSERT INTO `oc_t_item` (s_phone_mobile)
SELECT s_phone_mobile
FROM oc_t_user;
但是我收到以下错误:
#1452 - Cannot add or update a child row: a foreign key constraint fails (`poljo_test`.`oc_t_item`, CONSTRAINT `oc_t_item_ibfk_2` FOREIGN KEY (`fk_i_category_id`) REFERENCES `oc_t_category` (`pk_i_id`))
我意识到这可能是重复的问题,但我尝试的每一个“技巧”都不适合我。
答案 0 :(得分:1)
您的问题是由插件仅指定s_phone_mobile
的值引起的,有效地为此表包含的三个外键指定了NULL
。
MySQL中的外键约束将确保您的插入引用存在的外键,或者如果您将键定义为可空,则可能允许NULL
。我的猜测是至少有以下一个键不可为空:
fk_i_user_id
fk_i_category_id
fk_c_currency_code
因此,要解决此问题,您还应该为上述三个键插入外键值,除非键允许NULL
并且您可以使用它。并确保指定的值实际上对应于相应父表中的记录。