在PostgreSQL上捕获已删除的行

时间:2012-06-14 12:06:14

标签: sql postgresql import

我使用Microsoft SQL Server,而我的客户端使用PostgreSQL。

我从客户端数据库(PostgreSQL)获取数据到上次刷新日期的数据库(SQL Server)。例如:

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

..对于今天的复制,明天我将再次运行它:

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

我每天都这样做。但有时客户端删除了一些行。在这种情况下,我也需要了解他们。

有一个唯一的id列。客户端不会将我删除id。我必须抓住那些 - 但是怎么样?我将客户端的所有id列加载到我这边的一个单独的表中,然后我删除了客户端数据库中不存在但存在于我的数据库中的数据。它不适用于大桌子。我一直收到超时错误。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可能想要看一件事(显然,您所做的任何事情都需要在客户端捕捉事物):http://pgfoundry.org/projects/tablelog/

我在几个项目中使用它,它非常适合在表中捕获历史信息以及它们发生了什么。这样你就不必编写自己的触发器了。