【问题标题】:how to merge different tables that have the same structure in mysql?如何在mysql中合并具有相同结构的不同表?
【发布时间】:2022-01-22 21:17:44
【问题描述】:

我想将两个或多个表合并为一个,例如,我有 table1.csv 和 table2.csv,它们来自不同的 Mysql 服务器,但具有相同的结构,如 [A, B, C, datatime]。

对于不同的记录,如果A、B、C的值不一样,那么直接当作不同的记录,如果A、B、C的值相同,那么只有最新的记录将保留数据时间。

如果我先用程序在本地选择哪些记录有用,然后一起插入到mysql中,会不会比边选择边一个一个插入更快?

【问题讨论】:

  • 请问这是否是一次性迁移,或者此代码是否旨在为未来的许多用途提供快速且健壮的代码?
  • 感谢您的评论!这段代码可能需要多次使用,因为我有很多这样的表需要合并。每个表的大小可能在 xG 左右,有数百万条记录。

标签: c++ mysql sql


【解决方案1】:

您可以在要插入的表上的三个字段上使用复合唯一键来轻松完成

此查询将添加一个唯一键,因此您可以再次添加同一行

ALTER TABLE `table1` ADD UNIQUE `unique_index`(`a`, `b`, `c`);

这个查询只会追加不同的记录

INSERT IGNORE table1 SELECT * FROM table2

【讨论】:

  • LOAD DATA ... IGNORE ... 直接从 csv 文件加载。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-20
  • 1970-01-01
  • 2013-03-24
  • 2013-09-06
  • 1970-01-01
  • 2019-12-15
相关资源
最近更新 更多