跟踪表上次更新时间的最佳方法?

时间:2014-05-02 15:39:18

标签: sql oracle database-design oracle11g

我有一个程序可以检索数据并每天将其存储在一个表中,然后是另一个程序来查询该数据以生成报告。报告需要说明数据上次更新的时间,因此我们知道信息的年龄。

将具有最后更新日期的列添加到表中似乎很浪费,因为所有行都具有相同的值。创建一个表来存储一个值似乎也很浪费。

跟踪上次更新表的最佳解决方案是什么?

3 个答案:

答案 0 :(得分:1)

你可能应该添加一个列" LastModified"并在更新时保存日期时间。这应该是识别上次更新表的最佳方式。

答案 1 :(得分:1)

我首选的方法是创建一个新的“报告”表来存储目标表的最后一次更新,并创建一个触发器,以便在目标表发生更改时更新“报告”表。

有关创建此类触发器的更多信息,请参阅此处: http://www.techonthenet.com/oracle/triggers/after_update.php

答案 2 :(得分:0)

这应该有所帮助: http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2097.htm

ALL_TAB_MODIFICATIONS描述了自上次在表上收集统计信息以来已修改的当前用户可访问的表。 TIMESTAMP DATE表示上次修改表的时间

所以:

select TIMESTAMP from ALL_TAB_MODIFICATIONS
where table_name = 'My_TABLE'