如何在某个主机上的instance1上的prod db上卸载syscat.tables的数据,并将这些数据加载到另一台主机上的instance2上的dev db,然后我想比较dev db上的表名列表,这样我才能纠正我的表定义。
我们是否必须使用加载和卸载命令 如果我不清楚,请告诉我。
答案 0 :(得分:1)
如果您只是比较表名而不是其他名称,则可以通过EXPORT命令将该信息卸载到文本文件中。
db2 "EXPORT TO tablenames.csv OF DEL SELECT tabschema, tabname FROM syscat.tables ORDER BY tabschema, tabname"
捕获SELECT语句输出的另一种方法是使用command line processor(CLP)的-z
选项。
db2 -z tablenames.txt "SELECT tabschema, tabname FROM syscat.tables ORDER BY tabschema, tabname"
也就是说,比较和对比不同DB2数据库的表定义的任何认真努力都应该包含db2look命令,该命令可以将任何DB2对象反向工程为一组DDL语句。我强烈推荐它。
无论您如何决定生成有关每个数据库的详细信息,您都可能更容易将它们作为文本文件进行比较,而不是将数据库中的行进行比较。 diff命令已经存在了四十多年,而WinMerge和Beyond Compare这样的新实现将能够快速识别最大的文本文件集中的差异。