2012-06-14 34 views
1

我使用Microsoft SQL Server,而我的客戶端使用PostgreSQL。在PostgresSQL上捕獲已刪除的行

我從客戶端數據庫(PostgreSQL)獲取數據到我的數據庫(SQL Server)與上次刷新日期。例如:

select * 
from tablename 
where date > '2012-06-13' 

..今天的複製和明天我將再次運行它:

select * 
from tablename 
where date > '2012-06-14' 

我跑這每一天。但有時候客戶端已經刪除了一些行。在這種情況下,我也需要在我身邊瞭解他們。

有一個獨特的id列。客戶端不會發送給我刪除id。我必須抓住那些 - 但是如何?我將客戶端的所有id列加載到我周邊的一個單獨的表中,然後刪除哪些不存在於客戶端數據庫中,但存在於我的數據庫中。它不適用於大桌子。我不斷收到超時錯誤。有任何想法嗎?你可能想看看

+2

那麼,如果你可以在客戶端做些什麼,你可以在所有的客戶端表上都有一個'BEFORE DELETE'觸發器,這可以把一個Id和一個tableName放在'DeletedEntries'表中......但是隻有可能? –

+0

就是這樣。 –

回答

0

一件事(顯然任何你做將需要追趕上你的客戶端的東西)是這樣的:http://pgfoundry.org/projects/tablelog/

我曾在幾個項目中使用它,它追趕的歷史是偉大的表格中的信息以及他們發生了什麼。這樣你就不必編寫自己的觸發器。

相關問題