【问题标题】:Merge 2 MySQL Databases合并 2 个 MySQL 数据库
【发布时间】:2015-08-22 21:36:15
【问题描述】:

我有一个问题,我需要将 2 个数据库合并到一个 db。

问题有相同的表,但每个表有不同的字段。

例子:

DB1 应该合并到 DB2

DB1 表:xyz 字段:id、field1、field2 等

DB2 表:abc 字段:id、field1、field3 等

如果我尝试将 SQL 从 DB1 插入 DB2,我会收到类似“Column field2 not found”这样的错误

有没有工具可以帮我合并这些数据库?

我用 MySQL Workbench 试了一下,没有成功。

感谢您的帮助。

问候克里斯

【问题讨论】:

  • (1) 显示产生错误的查询。 (2) 您是否将“数据库”与“表”混淆了?
  • 1) INSERT IGNORE INTO abc (field1, field2) VALUES ('asd','qwe') 2) 我需要合并 2 个数据库,但实际上我试了一下表级
  • 试用 HeidiSQL,比 Workbench 更好、更简单,而且免费。我相信它会对你有所帮助。在去生产台之前做一些尝试。
  • 我会试试的。谢谢=)

标签: mysql database merge


【解决方案1】:

有几种可能的解决方案。

如果列名不同,您可能根本不想合并它们,因为数据可能不同。

但如果您想合并它们,请务必在源表和目标表中创建相同的列。您可以在 INSERT 期间通过指定列名来执行此操作。

INSERT INTO xyz (field1, field2) SELECT field1, field3 FROM abc;

请注意,field2 将具有 field3 的值。

如果您一生中处理此数据一次,则其他选项是使两个表具有相同的名称。然后使用相同的列名。

重命名列或添加列 - 使源表和目标表看起来相似。

【讨论】:

  • 我现在就是这样做的。删除未使用的列。
  • 我认为这回答了你的问题。
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-14
  • 2015-10-21
  • 2012-07-16
  • 2011-11-18
相关资源
最近更新 更多