2013-05-20 71 views
1

對於我正在編寫的應用程序,我需要能夠識別何時將新數據插入到數據庫的多個表中。Postgres SQL:檢查數據庫中新數據的最佳方法我無法控制

問題有兩方面,這些數據每分鐘會被插入到有時非常大的數據庫中(並且我需要對需求/數據庫輪詢問題很敏感),並且我無法控制創建此數據的應用程序(據我所知,我不能使用postgres中提供的notify/listen功能來完成這種任務*)。

任何有關良好策略的建議將不勝感激。 *我相信控制這些數據的應用程序本身就是使用通知/監聽功能,但我不知道如何(如果可能的話)知道它在外部使用的「通道」,以及它是否曾經能夠鎖定的。

+0

這些表是否有任何有用的字段,如創建日期時間或更新日期時間? –

+0

datetime created ... yes(但條目沒有更新,所以不是第二個)。 – oracle3001

+1

關於如何使用這些日期時間創建的列的想法? –

回答

1

一般而言,您需要表中可以用來確定新事物的內容,並且有幾種方法。

時間戳列可讓您使用日期,但您仍然有應用程序問題將數據存儲在數據庫之外,並且數據庫中未包含的數據意味着要管理的另一個數據領域。呸。

一個按表格存儲最後一次更新/插入時間戳的跟蹤表可以給你想要的。您希望使用觸發器來維護最後的DML時間戳。

您不想使用的解決方案是來自nextval的序列(整數)ID,用於除了唯一性以外的任何目的。標準/常見的錯誤是假定串行密鑰是連續的(它們不是)或單調的(它們不是)。

相關問題