我今天说的是把两个不同的数据库mysql和Oracle,在做数据迁移的时候,想查看两个表有什么不同的地方,无论是表名也好、表的数量也好、表里的字段也好、数据类型也好,都可以比较的出来。
环境及工具:
1、mysql数据库
2、Oracle数据库
注:这两个数据库我都用的是Navicat Premium 12其他好像也可以,大差不差的软件都行
3、网段不同(意思就是说我的mysql网和Oracle用的网是不同的,在一个网段的更好,省事了。。。)
4、WPS工具和一个懂使用WPS的人(身为编程的我,死在了Excel上、、、)
进入正题,
首先你需要在mysql上打开你需要核实的库,执行如下SQL
select * from information_schema.columns
对于执行出来的数据,然后找这个按钮,如下:
找到“导出结果”,点击,然后
点击“导出当前的结果”,然后,如下:
上面这两个都行,但是等一下我们操作导出Oracle数据时最好保持一致,然后点击下一步
这不用管,下一步,然后你会看到如下:
不管,下一步,然后后看到如下:
然后,就可以等他导出完毕。就可以在桌面找到一个“无标题.xls”的文件,修改这个文件的名字,我修改成“mysql数据”,随便啦~
然后我们转到Oracle数据库,执行如下:
select * from user_tab_columns
还是这个软件,还是刚刚的步骤,再来一遍。然后我们就可以打开这两个文件了。
我们需要在这两个文件里的数据中挑出自己需要的东西,比方说表名,字段名,字段类型
Oracle的容易找,但是,mysql的不容易找。
你打比方如下:
Oracle的很好看,但是mysql的就不是那回事了,活生生的让我找了半天(捂心口)
然后,就好了,然后就将剩下的工作交给文职人员,或者更懂Excel文件的人来,他们更会弄,我也只学到了一个皮毛,可以分享一下,
打比方,
我要查询mysql数据库里有的表,而Oracle数据库里没有的表,或者说是,mysql有的字段,Oracle数据库里少字段的现象。
如下:我会先弄成这个样子
然后,我们需要如下:选中表名这一列,就是放到红色箭头指的地方就能选中一列,然后ctrl+C复制,如下这个样子
然后呢,我们需要右击找到“选择性粘贴”,如下:
点击后,看到如下并修改成红色箭头所指的目标:
即可,另外一个也是同样的道理。
等弄完了之后,我们需要返回到mysql的表上,找到一个空白的位置,如下:
输入:
=VLOOKUP()
然后点击A1的位置,如下:
然后,我们需要加一个逗号,然后点击另外一个Excel文件,然后再加一个逗号,再选中另外一个文件的表名的那一列,入下图:
然后,我们不需要再切回去,直接在这个文件中依次按下
,1,0
就像这样:
然后回车,这时会回弹到mysql的Excel表内,并多了一个东西
此时,我们需要如下操作,点击红色十字的位置:
让他成为下图的这个样子,并选中这一列(C列):
然后,如下,点击“自动筛选”:
然后点击这里:
然后,如下,取消掉所有的选项,只保留最后一个:
如果说,你没发现最后一项,那恭喜你,至少在表的名称上和字段的数量上是正确的
多列对比多列,对不起。没学会,你还是找个会Excel的人吧,告辞