【问题标题】:Database schema changes - Db2数据库模式更改 - Db2
【发布时间】:2016-10-06 09:31:24
【问题描述】:

有没有办法使用 Java for DB2 来识别以下内容?

  1. 向表中添加了新列
  2. 表中重命名的列
  3. 表中删除的列

上述 3 是否也可以用于视图?

【问题讨论】:

  • 如何区分重命名的列和删除和添加的列?
  • 在我的脑海中完全一样,因此问题是看看是否有系统表可以提供帮助。
  • 我相信列上没有历史记录。目前不可能。
  • 您需要查看事务日志。它们已记录在案,但不是您想要的级别...
  • 什么风格的 DB2?只要表格被记录,至少有一种风格可以提供大部分信息,但无论如何,信息应该始终是问题的一部分。

标签: java database db2 schema


【解决方案1】:

Java 程序可以轻松地查询 DB2 以获取视图、表和列的当前定义(通过读取相应的 SYSCAT 视图),但 DB2 不会自动维护 DDL 更改的审计跟踪。您的 Java 程序需要定期连接到数据库,执行查询以捕获它关心的完整对象定义集,然后将结果与之前运行的定义进行比较,以查看是否有任何重要的变化。如果您决定采用这种方法,我建议您在查询中使用 ORDER BY 以在您将要比较的结果集中强制执行一致的排序顺序。

您可能需要考虑使用db2look 实用程序,而不是使用手动 SQL 将对象定义拉出系统目录视图,它可以将实时数据库(或其中的一部分)反向工程为DDL 脚本。权衡是 db2look 不能从 JDBC 连接运行;该命令使用只能在本地 DB2 服务器上运行或通过 DB2 的数据服务器客户端(完整或运行时)从远程系统运行的可执行文件。

【讨论】:

    猜你喜欢
    • 2011-06-29
    • 1970-01-01
    • 2023-03-29
    • 2011-04-11
    • 2018-07-13
    • 2010-11-23
    • 2014-08-08
    • 2010-12-03
    • 1970-01-01
    相关资源
    最近更新 更多