2011-02-25 83 views
0

我尝试在整个schema中将数据从一个表导入另一个表,但外键约束给出了问题。 假设我有模式一和模式二。 架构一个具有表 - >插入记录时出现外键约束问题

  1. 用户
  2. 行为
  3. userbehavior(ID从用户行为表是 userbehavior表的外键)

同样的方式,我有表结构在模式二中。 模式2具有表 - >

  1. USER1
  2. 的流行为
  3. userbehavior1(从用户行为的表ID是userbehavior表的外键)

我已经成功导入的记录来自用户到user1和行为行为1,但是当我试图从userbehavior导入数据到userbehavior1即时获取以下错误:: 无法添加或更新子行row.foreign密钥约束失败。 笏可能是一个问题? 在此先感谢。

回答

-2

原因:有表userbehaviour至少一行已在其他表

待办事项没有父:首先从两个模式和插入,然后设置约束回


删除所有外键约束

在出口

打开导出的SQL文件的情况下写

SET FOREIGN_KEY_CHECKS=0;上的文件

SET FOREIGN_KEY_CHECKS==1;对文件的

出口通过phpMyAdmin的底部的顶部,然后检查禁用外键检查

screenshot

+0

为什么downvoted ??? – diEcho 2011-02-25 14:14:09

+0

这是不一致数据的处方。如果查询分析器使用外键约束进行优化,则会正确地假定它适用于所有行,因此结果集可能缺少行。 – 2011-02-25 14:16:32

+0

@Simon真的没有得到你watever你说... – diEcho 2011-02-25 14:17:42

0

你有不一致的数据,这是数据库拒绝承认的吨,并有一个很好的理由。

我想创建TEMPORARY表(即是在会话结束后自动删除表,导入数据有,使用告诉我从userbehaviour违反FOREIGN KEY约束的行数的查询,手动清除这些了然后使用SELECT INTO将数据复制到实际表中。