2017-10-13 54 views
0

DB2中是否存在一个SQL查询,它将获取自指定时间戳记以来更新了任何记录的表/记录?DB2 - 获取具有从特定时间戳记插入/更新/删除的记录的表格

以下查询我只使用提取如果它是表更改而不是如果记录更新。

SELECT TRIM(TABSCHEMA) || '.' || TRIM(TABNAME), 
     MAX(CREATE_TIME,ALTER_TIME) 
FROM SYSCAT.TABLES 
ORDER BY 2 DESC 
+0

Db2的哪个平台? (Z/OS,i系列,Unix/Windows)。如果相关表具有自动维护的行更改时间戳或时间戳列,则可以在查询中使用该列。根据Db2的平台和版本以及可用和配置的工具集,还可以使用审计功能或事务日志分析来查找此信息。 – mao

+0

@mao我需要找到更新/插入记录中的任何列的表。它不是特定的表格,而是整个数据库 – 2FaceMan

+0

然后编辑问题以显示可用的平台/版本和工具集,因为这将决定答案。 – mao

回答

0

通用的解决办法是时间戳跟踪列添加到每个表中,默认为current timestamp然后用联合选择所有MAX()值并使用时间戳参数进行过滤。

另一种解决方案是创建一个trigger,它使用表名和当前时间戳更新跟踪表。