【问题标题】:Copy column content from one table to another mysql将列内容从一个表复制到另一个mysql
【发布时间】:2016-12-07 08:01:13
【问题描述】:

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

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

【问题讨论】:

  • 请显示oc_t_item的表定义通过主键/外键与其有关系的任何表。
  • 您好,谢谢您的回复。你的意思是表结构?
  • 是的,请告诉我结构。我的猜测是通过这些信息很容易发现问题。
  • @TimBiegeleisen 有什么办法可以在这里插入屏幕截图吗?我不知道如何展示你需要的东西。我们应该继续聊天吗?
  • 确保你可以打开聊天,比无尽的 cmets 更好。

标签: mysql osclass


【解决方案1】:

您的问题是由于您的插入仅指定了 s_phone_mobile 的值,实际上为该表包含的三个外键指定了 NULL

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

fk_i_user_id
fk_i_category_id
fk_c_currency_code

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

【讨论】:

    猜你喜欢
    • 2012-08-12
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 2014-04-25
    相关资源
    最近更新 更多