有两个不同的数据库(mysql的),要将一个数据库的信息导入到另一个数据库(其实就是合并),这两个数据库 50
有两个不同的数据库(mysql的),要将一个数据库的信息导入到另一个数据库(其实就是合并),这两个数据库的表名、字段都是不统一的,需要怎样操作才能成功导入?越详细越好...
有两个不同的数据库(mysql的),要将一个数据库的信息导入到另一个数据库(其实就是合并),这两个数据库的表名、字段都是不统一的,需要怎样操作才能成功导入?越详细越好
展开
5个回答
展开全部
最简单的办法就是用个ACCESS,无论你用什么代码来写,或者直接操作SQL,
如果是直接操作SQL那更简单,他可以直接建立操作查询,两个地方的数据库也可以用OpenRowSet关键词来取得联系。如果是用代码来编译程序做这样的操作,我的建议是用如PetShop和直接用个ACCESS来做跨数据库的数据表操作。
ACCESS直接做远程网络连接表(SQL远程数据库可以是任意地方的,只样能与当前主机能PING上)在ACCESS里做查询语句,或者直接做一个更新查询,代码调用的时候直接查询更新查询就达到了你的目的。如果是不借助ACCESS或者是借助ACCESS要用纯代码也有办法:
一个是用ACCESS的ODBC()库功能他的表结构是:
Select * from 表名 IN ODBC[ODBC:Driver={SQL Server};Server=服务器IP地址;UID=数据库用户名;PWD=密码;DataBase=数据库名称]
你把上面的查询当成一个表,把要插入的表和目的表用上面的格式写下来,拼接字符串就达到了目的。
OpenROWSET是SQL官方提供的一种办法,两个异地数据库,可以用OPENROWSET关键字来做连接,网上代码多的是。
PETSHOP是.Net提供的一种方法,直接用.NET连接数据库,用PETSHOP象ACCESS查询视图一样做查询表,但是我觉得这样做不好,程序运行效率低,而且相当不灵活。
一个表更新到另一个表要做更新检查,一边插入查询以便做连接查询匹配没有的数据才可以查询,重复的不允许插入,代码这么写:
INSERT INTO 目的表 SELECT 字段名称, 字段名称1, ... FROM 处理表 INNER JOIN 目的表 ON 处理表.匹配字段=目的表.匹配字段 WHERE ((目的表.字段) IS NULL)
把筛选好的表插入你的目的表,数据库问题解决了,插入检查还要解决啊,你琢磨一下。
如果是直接操作SQL那更简单,他可以直接建立操作查询,两个地方的数据库也可以用OpenRowSet关键词来取得联系。如果是用代码来编译程序做这样的操作,我的建议是用如PetShop和直接用个ACCESS来做跨数据库的数据表操作。
ACCESS直接做远程网络连接表(SQL远程数据库可以是任意地方的,只样能与当前主机能PING上)在ACCESS里做查询语句,或者直接做一个更新查询,代码调用的时候直接查询更新查询就达到了你的目的。如果是不借助ACCESS或者是借助ACCESS要用纯代码也有办法:
一个是用ACCESS的ODBC()库功能他的表结构是:
Select * from 表名 IN ODBC[ODBC:Driver={SQL Server};Server=服务器IP地址;UID=数据库用户名;PWD=密码;DataBase=数据库名称]
你把上面的查询当成一个表,把要插入的表和目的表用上面的格式写下来,拼接字符串就达到了目的。
OpenROWSET是SQL官方提供的一种办法,两个异地数据库,可以用OPENROWSET关键字来做连接,网上代码多的是。
PETSHOP是.Net提供的一种方法,直接用.NET连接数据库,用PETSHOP象ACCESS查询视图一样做查询表,但是我觉得这样做不好,程序运行效率低,而且相当不灵活。
一个表更新到另一个表要做更新检查,一边插入查询以便做连接查询匹配没有的数据才可以查询,重复的不允许插入,代码这么写:
INSERT INTO 目的表 SELECT 字段名称, 字段名称1, ... FROM 处理表 INNER JOIN 目的表 ON 处理表.匹配字段=目的表.匹配字段 WHERE ((目的表.字段) IS NULL)
把筛选好的表插入你的目的表,数据库问题解决了,插入检查还要解决啊,你琢磨一下。
展开全部
首先问下.你会哪种导入手段.再之.你会哪种导出方法.然后,按你会的操作呗.
2个数据库是不是同在本地,还是一个本地一个远程?Navicat自带数据导入向导,按那个操作就是.
表名不同没关系.字段不统一的话,要在导入时选下映射关系,不然就只有把远程的表下到本地来.
再用insert into 目标表(字段1,....字段N) select a,b,c,d,...n from 源表的方式写入.
2个数据库是不是同在本地,还是一个本地一个远程?Navicat自带数据导入向导,按那个操作就是.
表名不同没关系.字段不统一的话,要在导入时选下映射关系,不然就只有把远程的表下到本地来.
再用insert into 目标表(字段1,....字段N) select a,b,c,d,...n from 源表的方式写入.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要不自己编程,用hibernate,先建立要合并后的表,获得表1和表2的数据,再持久化。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-07-11
展开全部
不知道,我现在学的而是用pdo,不用担心换数据库的问题了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Navicat for Mysql 这个软件 操作方便
其实 你描述的也不清楚 数据格式 表结构 最终结果用途 都不知道 不大好给你解答
另外 操作的时候 一定记得先备份
其实 你描述的也不清楚 数据格式 表结构 最终结果用途 都不知道 不大好给你解答
另外 操作的时候 一定记得先备份
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询