Database 如何以编程方式比较两个表?
假设:Database 如何以编程方式比较两个表?,database,comparison,Database,Comparison,假设: 在两个表上运行相同的查询 这两个表位于不同的模式中 数据库表是其中的一部分,可能相同,也可能不同 如果数据库不同,则无法保证其版本或修补程序级别 两个表中的数据顺序相同。数据已排序 一个表可能比另一个表有更多的列 一个表可能比另一个表有更多的行 在我看来,有两个截然不同的挑战 运行比较 制作清晰的报告,概述差异 我想知道下面的方法是否有效 If (table1 and table 2 have the same number of columns) For every ro
- 在两个表上运行相同的查询
- 这两个表位于不同的模式中
- 数据库表是其中的一部分,可能相同,也可能不同
- 如果数据库不同,则无法保证其版本或修补程序级别
- 两个表中的数据顺序相同。数据已排序
- 一个表可能比另一个表有更多的列
- 一个表可能比另一个表有更多的行
- 运行比较
- 制作清晰的报告,概述差异
If (table1 and table 2 have the same number of columns)
For every row found in table1 check
If that same identical row exists in table2
And if it does not due to some column mismatch
Find the closes match possible and report column differences
If best match can be discovered, report column difference, else
report can result is ambiguous
...
这是否合理的做法?鉴于上面的一些假设,您能推荐一个替代方案吗?Mmm,在类似hibernate的ORM的帮助下,您可以将您的实体(表)与普通java对象进行比较(我假设您在这里使用java)
也就是说,您可以编写一个涵盖所有假设的比较器。嗯,在类似hibernate的ORM的帮助下,您可以像普通java对象一样比较实体(表)(我假设您在这里使用java) 也就是说,你可以编写一个涵盖你所有假设的比较器。我的答案是使用。 它们有一个模式和一个数据比较工具,这些工具还允许您生成脚本,使一个数据库看起来像另一个数据库 我与red gate没有任何联系,但作为客户,我的答案是使用。 它们有一个模式和一个数据比较工具,这些工具还允许您生成脚本,使一个数据库看起来像另一个数据库
我与red gate没有任何联系,但作为客户忽略列数和行数的差异,数据是否应该表示相同的实体 如果是这样的话,我会从大开始,一路走下去:
忽略列数和行数的差异,数据是否应该表示相同的实体 如果是这样的话,我会从大开始,一路走下去: