将列内容从一个 table 复制到另一个 mysql

Copy column content from one table to another mysql

我正在尝试将 s_phone_mobile 列从 oc_t_user table 填充到 mysql 数据库中的 oc_t_item table。我使用以下查询:

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`)) 

我意识到这可能是重复的问题,但我尝试的每个 "trick" 都不适合我。

您的问题是由于您的插入只为 s_phone_mobile 指定了一个值,实际上为这个 table 包含的三个外键指定了 NULL

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

fk_i_user_id
fk_i_category_id
fk_c_currency_code

因此,要解决此问题,您还应该为上述三个键插入外键值,除非一个键允许 NULL 并且您可以接受。并确保指定的值实际上对应于各自父 tables.

中的记录