我使用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列加载到我这边的一个单独的表中,然后我删除了客户端数据库中不存在但存在于我的数据库中的数据。它不适用于大桌子。我一直收到超时错误。有什么想法吗?
答案 0 :(得分:0)
您可能想要看一件事(显然,您所做的任何事情都需要在客户端捕捉事物):http://pgfoundry.org/projects/tablelog/
我在几个项目中使用它,它非常适合在表中捕获历史信息以及它们发生了什么。这样你就不必编写自己的触发器了。