一种数据库表结构的对比方法及装置制造方法及图纸

技术编号:34837924 阅读:13 留言:0更新日期:2022-09-08 07:33
本申请公开了一种数据库表结构的对比方法及装置,该方法包括:确定待比较的第一数据库的第一表结构文本和第二数据库的第二表结构文本;将第一表结构文本中的干扰项删除;将第二表结构文本中的干扰项删除;将第一表结构文本中的字符转换为数字,并将得到的数字进行求和得到第一数值;将第二表结构文本中的字符串转换为数字,并将得到的数字进行求和得到第二数值;当第一数值等于第二数值时,判断第一数据表和第二数据表结构相同。如此可以快速准确地判断两个数据库表结构的一致性,从而可以识别出存在差异的数据表,进而可以仅对差异的表结构进行更新,避免浪费不必要的时间、人力和资源成本。和资源成本。和资源成本。

【技术实现步骤摘要】
一种数据库表结构的对比方法及装置


[0001]本申请涉及计算机领域,尤其涉及一种数据库表结构的对比方法及装置。

技术介绍

[0002]数据库内可能建立了几千到上万个应用数据表,表结构根据业务逻辑需要进行变更。除了生产系统以外,还存在若干套开发测试系统,需要与生产系统保持数据库表结构同步。由于缺乏表结构差异对比的合适方法,通常采用全量的方式更新表结构。即为了保证开发测试系统和生成系统中的数据表的结果相同,可以先删除开发测试系统数据库全部应用表,按照生产系统数据库导出的全部应用表结构,然后在开发测试系统数据库重新建立应用表,再导出应用数据,这个过程耗费大量的时间、人力和服务器资源。

技术实现思路

[0003]为了解决上述技术问题,本申请提供了一种数据库表结构的对比方法及装置,用于快速准确地判断两边数据库表结构的一致性,仅对差异的表结构进行更新,避免浪费不必要的时间、人力和资源成本。
[0004]为了实现上述目的,本申请实施例提供的技术方案如下:
[0005]本申请实施例提供一种数据库表结构的对比方法,包括:确定待比较的第一数据库的第一表结构文本和第二数据库的第二表结构文本;将第一表结构文本中的干扰项删除;将第二表结构文本中的干扰项删除;干扰项包括注释行、空白字符和系统特殊配置参数项中的至少一种;将第一表结构文本中的字符转换为数字,并将得到的数字进行求和得到第一数值;将第二表结构文本中的字符串转换为数字,并将得到的数字进行求和得到第二数值;当第一数值等于第二数值时,判断第一数据表和第二数据表结构相同。
[0006]作为一种可能的实施方式,将第一表结构文本中的字符转换为数字,并将得到的数字进行求和得到第一数值;将第二表结构文本中的字符串转换为数字,并将得到的数字进行求和得到第二数值,包括:将第一表结构文本中的字符转换为数字,并将每行字段串对应的数字求和,得到第一数组;将第二表结构文本中的字符转换为数字,并将每行字段串对应的数字求和,得到第二数组;将第一数组中的数字求和,得到第一数值;将第二数值中的数字求和,得到第二数值。
[0007]作为一种可能的实施方式,还包括:如果第一表结构文本或第二表结构文本中的某一行的上一行以符号逗号结尾,将符号逗号删除;如果第一表结构文本或第二表结构文本中的某一行以符号右括号结尾,将符号右括号移至上一行末尾。
[0008]作为一种可能的实施方式,还包括:当第一数值不等于第二数值时,根据第一数组和第二数组,通过diff算法获得第一表结构文本和第二表结构文本的行差异信息。
[0009]作为一种可能的实施方式,,还包括:根据行差异信息,获得第一表结构文本和第二表结构文本中的差异行或差异段;根据差异行或差异段,获得第一表结构文本和第二表结构文本的字符差异信息。
[0010]作为一种可能的实施方式,根据差异行或差异段,获得第一数组和第二数组的字符差异信息,包括:根据差异行或差异段,通过diff算法获得第一数组和第二数组的字符差异信息。
[0011]作为一种可能的实施方式,第一表结构文本包括生产系统数据库表,第二表结构文本包括开发系统数据库表。
[0012]根据上述的数据库表结构的对比方法,本申请实施例还提供了一种数据库表结构的对比装置,包括:确定模块,用于确定待比较的第一数据库的第一表结构文本和第二数据库的第二表结构文本;删除模块,用于将第一表结构文本中的干扰项删除;将第二表结构文本中的干扰项删除;干扰项包括注释行、空白字符和系统特殊配置参数项中的至少一种;转换模块,用于将第一表结构文本中的字符转换为数字,并将得到的数字进行求和得到第一数值;将第二表结构文本中的字符串转换为数字,并将得到的数字进行求和得到第二数值;判断模块,用于当第一数值等于第二数值时,判断第一数据表和第二数据表结构相同。
[0013]作为一种可能的实施方式,转换模块具体用于:将第一表结构文本中的字符转换为数字,并将每行字段串对应的数字求和,得到第一数组;将第二表结构文本中的字符转换为数字,并将每行字段串对应的数字求和,得到第二数组;将第一数组中的数字求和,得到第一数值;将第二数值中的数字求和,得到第二数值。
[0014]作为一种可能的实施方式,还包括:行差异信息获得模块,用于当第一数值不等于第二数值时,根据第一数组和第二数组,通过diff算法获得第一表结构文本和第二表结构文本的行差异信息。
[0015]通过上述技术方案可知,本申请具有以下有益效果:
[0016]本申请实施例提供了一种数据库表结构的对比方法,包括:确定待比较的第一数据库的第一表结构文本和第二数据库的第二表结构文本;将第一表结构文本中的干扰项删除;将第二表结构文本中的干扰项删除;将第一表结构文本中的字符转换为数字,并将得到的数字进行求和得到第一数值;将第二表结构文本中的字符串转换为数字,并将得到的数字进行求和得到第二数值;当第一数值等于第二数值时,判断第一数据表和第二数据表结构相同。
[0017]由此可知,本申请实施例提供的方法,通过删除数据表的表结构文本中的干扰项,并将删除了干扰项后的表结构文本中的字符转换为数字,再对得到的数字求和,根据得到的第一数值和第二数值,能够快速准确地判断两个数据库表结构的一致性,从而可以识别出存在差异的数据表,进而可以仅对差异的表结构进行更新,避免浪费不必要的时间、人力和资源成本。
附图说明
[0018]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为本申请实施例提供的一种数据库表结构的对比方法的流程图;
[0020]图2为本申请实施例提供的一种数据库表结构的对比方法的示意图;
[0021]图3为本申请实施例提供的一种删除干扰项方法的示意图;
[0022]图4为本申请实施例提供的一种对数组进行求和的示意图;
[0023]图5为本申请实施例提供的一种差异类型的示意图;
[0024]图6为本申请实施例提供的一种数据库表结构的对比装置的示意图。
具体实施方式
[0025]为了帮助更好地理解本申请实施例提供的方案,在介绍本申请实施例提供的方法之前,先介绍本申请实施例方案的应用的场景。
[0026]数据库内可能建立了几千到上万个应用数据表,表结构根据业务逻辑需要进行变更。除了生产系统以外,还存在若干套开发测试系统,需要与生产系统保持数据库表结构同步。由于系统用途不一致,开发测试系统数据库表结构的部分参数配置与生产系统数据库有区别,不宜采用逐个字符比较的方式确定两边表结构的一致性;数据库中的一个表结构由表空间、表、索引、视图等多个组件构成,从数据库导出表结构文本时,各组件文本按照组件创建的时间进行排序,不宜采用逐行对比文本的方式确定两边表结构的一致性。由于缺本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库表结构的对比方法,其特征在于,包括:确定待比较的第一数据库的第一表结构文本和第二数据库的第二表结构文本;将所述第一表结构文本中的干扰项删除;将所述第二表结构文本中的干扰项删除;所述干扰项包括注释行、空白字符和系统特殊配置参数项中的至少一种;将所述第一表结构文本中的字符转换为数字,并将得到的数字进行求和得到第一数值;将所述第二表结构文本中的字符串转换为数字,并将得到的数字进行求和得到第二数值;当所述第一数值等于所述第二数值时,判断所述第一数据表和所述第二数据表结构相同。2.根据权利要求1所述的方法,其特征在于,所述将所述第一表结构文本中的字符转换为数字,并将得到的数字进行求和得到第一数值;将所述第二表结构文本中的字符串转换为数字,并将得到的数字进行求和得到第二数值,包括:将所述第一表结构文本中的字符转换为数字,并将每行字段串对应的数字求和,得到第一数组;将所述第二表结构文本中的字符转换为数字,并将每行字段串对应的数字求和,得到第二数组;将所述第一数组中的数字求和,得到所述第一数值;将所述第二数值中的数字求和,得到所述第二数值。3.根据权利要求1所述的方法,其特征在于,还包括:如果所述第一表结构文本或第二表结构文本中的某一行的上一行以符号逗号结尾,将所述符号逗号删除;如果所述第一表结构文本或第二表结构文本中的某一行以符号右括号结尾,将所述符号右括号移至上一行末尾。4.根据权利要求2所述的方法,其特征在于,还包括:当所述第一数值不等于所述第二数值时,根据所述第一数组和所述第二数组,通过diff算法获得所述第一表结构文本和所述第二表结构文本的行差异信息。5.根据权利要求4所述的方法,其特征在于,还包括:根据所述行差异信息,获得所述第一表结构文本和所述第二表结构文本中的差异行或差异段;根据所述差异行或所述差异...

【专利技术属性】
技术研发人员:闭万毅
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1