2个不同数据库之间的表模式转换

时间:2012-01-23 19:31:19

标签: mysql

我有一个mysql转换工作。几天前我曾问过这个问题。我正好在这里解释我的要求。

我有2个名为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代码来实现它。

请帮助 谢谢你好

3 个答案:

答案 0 :(得分:1)

要更改表的架构,可以使用ALTER TABLE命令。

答案 1 :(得分:0)

将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

假设您可以通过该键匹配表。

答案 2 :(得分:0)

insert into onedb.data (a, b, c, d)
select b, a, d, c
from twodb.data;
哎呀,我没有看到这个答案已经给出了。