将列内容从一个表复制到另一个表

时间:2016-12-07 08:01:14

标签: mysql osclass

我正在尝试将列s_phone_mobileoc_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`)) 

我意识到这可能是重复的问题,但我尝试的每一个“技巧”都不适合我。

1 个答案:

答案 0 :(得分:1)

您的问题是由插件仅指定s_phone_mobile的值引起的,有效地为此表包含的三个外键指定了NULL

MySQL中的外键约束将确保您的插入引用存在的外键,或者如果您将键定义为可空,则可能允许NULL。我的猜测是至少有以下一个键不可为空:

fk_i_user_id
fk_i_category_id
fk_c_currency_code

因此,要解决此问题,您还应该为上述三个键插入外键值,除非键允许NULL并且您可以使用它。并确保指定的值实际上对应于相应父表中的记录。