如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题

我今天说的是把两个不同的数据库mysql和Oracle,在做数据迁移的时候,想查看两个表有什么不同的地方,无论是表名也好、表的数量也好、表里的字段也好、数据类型也好,都可以比较的出来。

环境及工具:

1、mysql数据库

2、Oracle数据库

注:这两个数据库我都用的是Navicat Premium 12其他好像也可以,大差不差的软件都行

3、网段不同(意思就是说我的mysql网和Oracle用的网是不同的,在一个网段的更好,省事了。。。)

4、WPS工具和一个懂使用WPS的人(身为编程的我,死在了Excel上、、、)

进入正题,

首先你需要在mysql上打开你需要核实的库,执行如下SQL

select * from information_schema.columns

对于执行出来的数据,然后找这个按钮,如下:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第1张图片

找到“导出结果”,点击,然后

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第2张图片

点击“导出当前的结果”,然后,如下:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第3张图片

上面这两个都行,但是等一下我们操作导出Oracle数据时最好保持一致,然后点击下一步

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第4张图片

这不用管,下一步,然后你会看到如下:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第5张图片

不管,下一步,然后后看到如下:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第6张图片

然后,就可以等他导出完毕。就可以在桌面找到一个“无标题.xls”的文件,修改这个文件的名字,我修改成“mysql数据”,随便啦~

然后我们转到Oracle数据库,执行如下:

select * from user_tab_columns

还是这个软件,还是刚刚的步骤,再来一遍。然后我们就可以打开这两个文件了。

我们需要在这两个文件里的数据中挑出自己需要的东西,比方说表名,字段名,字段类型

Oracle的容易找,但是,mysql的不容易找。

你打比方如下:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第7张图片

Oracle的很好看,但是mysql的就不是那回事了,活生生的让我找了半天(捂心口)

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第8张图片

然后,就好了,然后就将剩下的工作交给文职人员,或者更懂Excel文件的人来,他们更会弄,我也只学到了一个皮毛,可以分享一下,

打比方,

我要查询mysql数据库里有的表,而Oracle数据库里没有的表,或者说是,mysql有的字段,Oracle数据库里少字段的现象。

如下:我会先弄成这个样子

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第9张图片

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第10张图片

然后,我们需要如下:选中表名这一列,就是放到红色箭头指的地方就能选中一列,然后ctrl+C复制,如下这个样子

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第11张图片

然后呢,我们需要右击找到“选择性粘贴”,如下:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第12张图片

点击后,看到如下并修改成红色箭头所指的目标:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第13张图片

即可,另外一个也是同样的道理。

等弄完了之后,我们需要返回到mysql的表上,找到一个空白的位置,如下:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第14张图片

输入:

=VLOOKUP()

然后点击A1的位置,如下:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第15张图片

然后,我们需要加一个逗号,然后点击另外一个Excel文件,然后再加一个逗号,再选中另外一个文件的表名的那一列,入下图:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第16张图片

然后,我们不需要再切回去,直接在这个文件中依次按下

,1,0

就像这样:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第17张图片

然后回车,这时会回弹到mysql的Excel表内,并多了一个东西

此时,我们需要如下操作,点击红色十字的位置:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第18张图片

让他成为下图的这个样子,并选中这一列(C列):

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第19张图片

然后,如下,点击“自动筛选”:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第20张图片

然后点击这里:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第21张图片

然后,如下,取消掉所有的选项,只保留最后一个:

如何对比两个数据库中的结构、表数量、字段数量等是否一致的问题_第22张图片

如果说,你没发现最后一项,那恭喜你,至少在表的名称上和字段的数量上是正确的

多列对比多列,对不起。没学会,你还是找个会Excel的人吧,告辞

完(写的不好,原谅色)

你可能感兴趣的:(数据库相关)