对于我正在编写的应用程序,我需要能够识别何时将新数据插入到数据库的多个表中。
问题有两个,这个数据每分钟会被插入很多次有时非常大的数据库(我需要对需求/数据库轮询问题敏感)并且我无法控制创建这些数据的应用程序(据我所知,我不能使用postgres中提供的通知/监听功能来完成这种任务*)。
非常感谢任何有关良好策略的建议。
*我相信控制这些数据的应用程序本身就是使用通知/监听功能,但我不知道如何(如果可能的话)知道它在外部使用的“通道”是什么,以及它是否能够抓住那个。
答案 0 :(得分:1)
通常,您需要在表格中使用某些内容来确定新颖性,并且有一些方法。
时间戳列允许您使用日期,但您仍然存在在数据库之外存储日期的应用程序问题,而不在数据库中的数据意味着要管理的另一个数据领域。呸。
基于每个表存储最后更新/插入时间戳的跟踪表可以为您提供所需的内容。您需要使用触发器来维护last-DML时间戳。
您不想使用的解决方案是来自nextval的串行(整数)ID,用于任何目的而不是唯一性。标准/常见错误是假设串行密钥是连续的(它们不是)或单调的(它们不是)。