Postgresql:检查我无法控制的数据库中的新数据的最佳方法

时间:2013-05-20 02:11:12

标签: sql polling notify listen

对于我正在编写的应用程序,我需要能够识别何时将新数据插入到数据库的多个表中。

问题有两个,这个数据每分钟会被插入很多次有时非常大的数据库(我需要对需求/数据库轮询问题敏感)并且我无法控制创建这些数据的应用程序(据我所知,我不能使用postgres中提供的通知/监听功能来完成这种任务*)。

非常感谢任何有关良好策略的建议。

*我相信控制这些数据的应用程序本身就是使用通知/监听功能,但我不知道如何(如果可能的话)知道它在外部使用的“通道”是什么,以及它是否能够抓住那个。

1 个答案:

答案 0 :(得分:1)

通常,您需要在表格中使用某些内容来确定新颖性,并且有一些方法。

时间戳列允许您使用日期,但您仍然存在在数据库之外存储日期的应用程序问题,而不在数据库中的数据意味着要管理的另一个数据领域。呸。

基于每个表存储最后更新/插入时间戳的跟踪表可以为您提供所需的内容。您需要使用触发器来维护last-DML时间戳。

您不想使用的解决方案是来自nextval的串行(整数)ID,用于任何目的而不是唯一性。标准/常见错误是假设串行密钥是连续的(它们不是)或单调的(它们不是)。