sql脚本表结构和数据库表结构对比方法:
昨日,我市南开区xx大厦xx层发生了一起怒由心生的个人重大事故,事情的起因是赵某执行sql脚本时,经常被x氏,xx氏,xxx氏打扰,但是赵某没闪,当一个心脏年龄堪比69岁马老师遭受偷袭时,赵某很淡定,很快啊!赵某帮别人解决了问题,sql脚本也跑完了;
然而,事情并没有结束,执行脚本的过程中,赵某发现并反馈了四个问题,均为脚本建表语句与数据库存在表冲突,领导见而令之:对比表结构以图心安而后快。
此时,赵某犹豫了,但是,很快啊!调整一下猩态,看了x老师物联边之后,心情舒展,内心顺畅,想着快些解决百十张表结构对比问题,起身询问数据工程师,给他支了个招,喝一口耗子尾汁。。。eeeee
并不是,他传他(赵某)一技,导出数据库建表语句,对比字段差异,赵某觉得此路可行,故而转身欲行之,一百多张表,此路不通!故另寻它法,延地砖跑至七步,忽然灵光一现,神之旨意,先去吃饭。
预行,法来,
新建一数据库模式,修改sql脚本模式名称,在新模式中执行修改后的脚本,查询此模式下所有表名、字段名、表结构,查询语句为:select table_name,column_name,data_type from information_schema.columns where table_schema= '爱你一万年'(模式名称);
语句可查出模式名下所有表及表字段和字段数据类型,查询结果赋值到excel表格中,作为比较对象;
将表中的table_name赋值一份到一个新的sheet页,去重(选择excel数据,重复项,删除重复项)拿到需要去旧模式查询的所有表信息;
将所有的表去重后,给所有表添加单引号,每一个表(不包含最后一张表)后面添加一个逗号,必须是英文单引号和英文逗号,格式例如:‘aini’,'yiwan','nian';
拿到添加引号和逗号的表,去旧模式中查询所有对应表的表字段及字段的数据类型,查询语句为:select table_name,column_name,data_type from information_schema.columns where table_schema= '爱你一百年年'(旧模式名称)and table_name in(括号中黏贴刚刚添加引号和逗号的表文本);执行之后可以查询到所有需要对比的表的数据库中的字段及字段数据类型。
复制到excel,使用excel中的高亮重复项,对比两次查询出的字段名称及字段的数据类型;
至此,结束。
等等紫薇别走!记得完成之后,删除新建的模式。切记切记!遵循神的旨意,吃饭。