【问题标题】:Combine MySQL databases合并 MySQL 数据库
【发布时间】:2014-11-14 04:39:01
【问题描述】:

我每天都会转储某个数据库。我想要做的是将来自数据库不同转储的特定表记录合并到一个表中。例如,如果我有第 1 天的表 X 和第 2 天的表 X,这两个表基本上是相同的,有重叠的记录。我只想得到一个表 X ,其中两个数据相结合。该表有一个名为“id”的主键。

第 X 天餐桌

id   field1   field2
1    0        0
2    1        2

第 X 天第 2 天

id   field1   field2
1    0        0
3    1        3

我需要什么:

表 X

id   field1   field2
1    0        0
2    1        2
3    1        3

最好的方法是什么?是否可以在 MySQL 本身中完成,或者我需要一个代码来处理它?

请注意:此表 x 存在于不同的数据库中。基本上,我将这些每日转储导入 MySQL,它会为每一天提供一个独特的数据库。

谢谢

【问题讨论】:

  • 我不能完全理解你想要什么。你的意思是你有你想在一个新的mysql模式上合并的转储?表应该自动获得一个新名称吗?
  • @HolaSoyEduFelizNavidad 基本上,我在 10 天内从单个数据库进行了 10 次转储。该数据库中有一个随时间变化的表。我想做的就是从这 10 天中获取该表的记录,并将它们合并到一个新数据库中的一个表中。谢谢
  • 您的转储是仅此表还是整个数据库?你可以在加载转储之前调用脚本吗?
  • @HolaSoyEduFelizNavidad 虚拟机来自整个数据库。我有 .frm MYI 和 MYD 文件,我将它们复制到 mysql 目录中以加载它们。

标签: mysql mysqldump


【解决方案1】:

首先你需要找到给你想要的结果的查询,下一步是你可以创建一个像create view tablex as这样的视图来创建一个带有create table tablex as select ....的表。 对于您的情况,您必须使用 union 子句组合您的结果:

 Select id, field1, field2 from table1
 union
 Select id, field2, field2 from table2

【讨论】:

    【解决方案2】:
    INSERT INTO Tablex (id, field1, field2) VALUES
    SELECT id, field1, field2
    FROM someOtherTable
    UNION
    SELECT id, field1, field2
    FROM anotherTable
    

    在这里查看mySQL query: How to insert with UNION?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-22
      • 2023-04-02
      • 2011-11-18
      • 1970-01-01
      • 2014-04-27
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多