如何合并5个相同的MySQL表?

如何合并5个相同的MySQL表?,mysql,Mysql,我想合并5个相同的模式,好吧,它们不是完全相同的,但是我可以编辑字段名,使它们成为相同的MySQL数据库,成为一个数据库。有什么简单的方法吗 CREATE TABLE `users` ( `name` VARCHAR (50) COLLATE utf8_turkish_ci DEFAULT NULL, `surname` VARCHAR (50) COLLATE utf8_turkish_ci DEFAULT NULL, `telephone` VARCHAR (50)

我想合并5个相同的模式,好吧,它们不是完全相同的,但是我可以编辑字段名,使它们成为相同的MySQL数据库,成为一个数据库。有什么简单的方法吗

CREATE TABLE `users` (
    `name` VARCHAR (50) COLLATE utf8_turkish_ci DEFAULT NULL,
    `surname` VARCHAR (50) COLLATE utf8_turkish_ci DEFAULT NULL,
    `telephone` VARCHAR (50) COLLATE utf8_turkish_ci DEFAULT NULL,
    PRIMARY KEY (`id`),

) ENGINE = MyISAM AUTO_INCREMENT = 1000 DEFAULT CHARSET = utf8 COLLATE = utf8_turkish_ci PACK_KEYS = 0 ROW_FORMAT = DYNAMIC

没有简单的方法可以做到这一点

您可以尝试更改不同数据库中的表,使它们采用最相似的格式

此外,您可以使用以下语句

Create table as select
以便进一步格式化数据

而不是对所有数据库进行MYSQL转储。 仅从您感兴趣的数据库模式中选择create语句,然后为来自所有不同数据库的数据添加insert语句


您可能还必须在Excel或mysql中执行文本操作,以便以兼容的格式获取数据,并将其插入最终模式。

任何ETL工具,如Clover,都非常适合您的目的。只需定义列映射,就可以开始了。如果需要进一步的帮助,请留下注释。

如果表的列名/类型完全相同,并且命名为

用户1 用户2 用户3 用户4 用户5 有两种方法可以处理此问题:

方法1:将数据加载到一个表中 如果id为自动增量,则所有行都将获得新id

方法2:
试试看

他们有相同的数据吗?还是完全相同的模式?@asah,他们有相同的模式。他们都生活在同一台MySQL服务器上吗?如果是这样的话,对每个表的UNIONALL查询将很容易完成这项工作,除非您有很多表tables@MichaelBerkowski,它们不在同一台MySQL服务器上,但我可以将它们全部移植到一台MySQL服务器。@ilhan如果它们发生冲突,则是。组合表可以在没有PK的情况下定义,但是,这样就不会发生冲突。但你必须弄清楚如何处理这些重复的钥匙。事实上,有,看到我的答案了吗
CREATE TABLE user LIKE user1;
INSERT INTO user (name,surname,telephone,...)
SELECT name,surname,telephone,... FROM user1;
INSERT INTO user (name,surname,telephone,...)
SELECT name,surname,telephone,... FROM user2;
INSERT INTO user (name,surname,telephone,...)
SELECT name,surname,telephone,... FROM user3;
INSERT INTO user (name,surname,telephone,...)
SELECT name,surname,telephone,... FROM user4;
INSERT INTO user (name,surname,telephone,...)
SELECT name,surname,telephone,... FROM user5;
CREATE TABLE user LIKE user1;
ALTER TABLE user
    ENGINE=Mrg_MyISAM
    UNION=(user1,user2,user3,user4,user5)
;