将主键自动增量为外键 - 合并数据库中的问题

时间:2015-07-20 00:59:13

标签: mysql

我有这些情况,我有两个数据库(相同的结构差异数据),我希望他们合并。 我的问题是几乎所有表都使用自动增量主键作为外键,所以基本上我不能只将数据导出到另一个。

我的问题是:

1. Is there any other way to do this except for data mine or manual?
2. To avoid this in the future can I just create my own foreign key (Is that ideal)?

1 个答案:

答案 0 :(得分:0)

有许多情况和许多决议。您可以创建php,ruby,python等脚本来复制数据并修复外键关系。
或者只是:

  1. 创建临时表,假设我们有table和table_tmp
  2. 将第二个表中的整个数据插入table_tmp
  3. 将新数据从table_tmp复制到表:

    INSERT INTO表VALUES(SELECT * FROM table_tmp WHERE id NOT IN(SELECT id FROM table));

  4. 3.1或将table_tmp中的整个数据复制到表中:

    INSERT INTO table (field, names, except, id, field) VALUES (SELECT field, names, except, id, field FROM table_tmp);
    



    **当然最好有一些uuid字段来保留唯一标识符并使​​用此字段建立关系以避免出现外键问题

    **如果需要任何额外的要求,请在评论中写一下我会尝试添加解决方案

相关问题