插入记录时出现问题的外键约束

时间:2011-02-25 14:01:25

标签: mysql

我试图通过模式将数据从一个表导入另一个表。但外键约束存在问题。 假设我有架构一和架构二。 模式一有表 - >

  1. 用户
  2. 行为
  3. userbehavior(来自用户和行为表的id是外键) userbehavior table)
  4. 同样,我在模式二中有表结构。 架构2有表格 - >

    1. 用户1
    2. 的流行为
    3. userbehavior1(来自用户和行为表的id是userbehavior表中的外键)
    4. 我已成功将记录从用户导入到user1,行为导向到behavior1但是当我尝试将数据从userbehavior导入到userbehavior1时,我收到以下错误:: 无法添加或更新子行。外键约束失败。 扫管笏可能是个问题? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您有不一致的数据,数据库拒绝导入,这是有充分理由的。

我创建TEMPORARY个表(即会话结束后自动删除的表,在那里导入数据,使用一些查询显示违反 userbehaviour 的行FOREIGN KEY约束,手动清除它们,然后使用SELECT INTO将数据复制到真实表格。

答案 1 :(得分:-2)

原因:表 userbehaviour 中至少有一行在其他表中没有父

todo:首先从架构和插入中删除所有外键约束,然后再设置约束


出口

打开导出的sql文件并编写

SET FOREIGN_KEY_CHECKS=0;位于文件顶部

文件底部的

SET FOREIGN_KEY_CHECKS==1;

通过 phpMyAdmin 导出,然后选中禁用外键检查

screenshot