Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 两个不同数据库之间的表架构转换_Mysql - Fatal编程技术网

Mysql 两个不同数据库之间的表架构转换

Mysql 两个不同数据库之间的表架构转换,mysql,Mysql,我有一个mysql转换的工作,几天前我已经问过了。我在这里恰当地解释了我的要求 我有两个数据库,分别是onedb和twodb。在这两个数据库中,我都有一个名为data的表。在twodb中,表数据包含4个字段,分别称为a、b、c和d。同样在onedb中,表数据包含7个字段,称为b、a、d、c、e、f、g。两个表中都有4个字段a、b、c、d 现在我需要将twodb表数据中的所有值插入onedb表数据,而不影响onedb表数据的结构 另外,twodb的表数据中大约有100行,而onedb的表数据中目前

我有一个mysql转换的工作,几天前我已经问过了。我在这里恰当地解释了我的要求

我有两个数据库,分别是onedb和twodb。在这两个数据库中,我都有一个名为data的表。在twodb中,表数据包含4个字段,分别称为a、b、c和d。同样在onedb中,表数据包含7个字段,称为b、a、d、c、e、f、g。两个表中都有4个字段a、b、c、d


现在我需要将twodb表数据中的所有值插入onedb表数据,而不影响onedb表数据的结构

另外,twodb的表数据中大约有100行,而onedb的表数据中目前没有行

我怎样才能做到这一点,是有一个简单的查询来实现它,还是应该写一些php代码来实现它

请帮忙
谢谢

要更改表的架构,可以使用alter table命令。

将表数据从onedb导入twodb,但将其重命名为onedata。(您可能需要编辑正在导入的SQL文件)

使用alter table向onedata添加新字段-从twodb的架构复制

然后您需要从数据更新onedata表,希望您有一个键

这是一个原型声明。它可能需要很多调整

UPDATE data, onedata
 SET data.e=onedata.e, data.f=onedata.f, data.g=onedata.g
 WHERE onedata.mainkey= data.mainkey
这是假设您可以通过该键匹配表

insert into onedb.data (a, b, c, d)
select b, a, d, c
from twodb.data;

哎呀,我看不出这个答案已经给出了。

要将onebd转换为towdb的模式,这不是意味着删除字段e、f和g吗?为什么记录的数量与如何改变表的模式有任何关系?您是否可以列出一系列可以实现所需的操作,以明确这是什么?不要担心它们是否是合法的DB操作。@ScottHunter Hunter我需要在不影响onedb表数据结构的情况下将twodb表数据中的所有值插入onedb表数据。如果要删除e、f和g,那么我只需要从其他表导出内容,对吗?我只是重新阅读了问题。显然,onedata表是空的。您所要做的就是通过ALTERTABLEADD COLUMN更改twodb中数据的模式。。。(在手册中查找)我需要将twodb表数据中的所有值插入onedb表数据,而不影响onedb表数据插入onedb的结构。数据(a,b,c,d)从twodb.data中选择a,b,c,d;如果你不再需要,你可以随时删除你的帖子