不同数据库之间进行表及表数据的传输

分享一个跨数据库实现数据传输的简单方法:

今天早上想做这样一件事:想把pg中blog数据库的所有表及表数据全部复制到mysql中的blog数据库中,我使用的是navicat-premium 我首先是使用以下步骤:

1、将pg中blog数据库的数据转储成.sql文件

2、在mysql的blog数据库中运行该.sql文件

可是总是现实失败,给出如下提示:

不同数据库之间进行表及表数据的传输

找了半天,发现在往mysql数据库插入数据的时候,所有的值都变成?了,但这不应该成为导致运行sql脚本失败的原因,查了一番后发现网上的大家都说是因为两个数据库之间存在差异,

mysql可能无法识别pg的sql脚本中的一些函数、符号等,下面是百度到的需要在pogresql脚本中修改的地方:

不同数据库之间进行表及表数据的传输

我没有尝试去改脚本,因为我发现了更简单的方法,但我还是觉得有必要尝试一下,这样就能了解更多两种数据库之间的差异性了,下面就先说一下我的方法吧:

只需要一个navicat-premium工具就好

1、选中pg中要导入的数据表或表所在的数据库;

只选表就会只操作选中的表;选中数据库就会操作所有数据库中的数据;

2、右击选择数据传输

3、配置传输信息,如下图所示:

不同数据库之间进行表及表数据的传输

配置信息一目了然,就是源信息和目标信息,但是有一个关键点,就是天蓝色部分的选项,pg数据库所在方一定要选择模式为public,因为:

pg数据服务器的目录树结构中,表的父级目录是public而不是数据库名;

mysql数据库服务器的目录树结构中,表的父级目录就是数据库名;

如下图所示:

不同数据库之间进行表及表数据的传输

4、配置完点击开始就OK了,如下图所示:

不同数据库之间进行表及表数据的传输

5、查看数据是否一致

注意:在查看传输到mysql数据库中的是否一致前,要先关闭连接,打开之后再刷新数据库才能看到传输的数据表。以blog_user表为例,我的两个数据库中的信息如下:

postgresql中:

不同数据库之间进行表及表数据的传输

mysql中:

 不同数据库之间进行表及表数据的传输

以上就是跨数据库实现数据传输的整个过程,有兴趣的可以尝试一下mysql到pg或其他数据库之间是否可以进行传输.........