1

私はMicrosoftSQLServerを使用しており、クライアントはPostgreSQLを使用しています。

クライアントDB(PostgreSQL)からデータベース(SQL Server)に最終更新日でデータを取得します。例えば:

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

..今日のレプリケーションと明日のために、もう一度実行します。

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

私はこれを毎日実行します。ただし、クライアントが一部の行を削除している場合があります。この場合、私も自分の側でそれらについて知る必要があります。

ユニークなidコラムがあります。クライアントは私に削除を送信しませんid。私はそれらを捕まえる必要があります-しかしどうやって?すべてのID列をクライアント側から自分の側の別のテーブルに週に1回ロードしています。次に、クライアントデータベースには存在しないが、データベースには存在するものを削除します。そして、それは大きなテーブルでは機能しません。タイムアウトエラーが発生し続けます。何か案は?

4

1 に答える 1

0

あなたが見たいと思うかもしれない1つのこと(明らかにあなたがすることはあなたのクライアントの側で物事を捕まえることを必要とするでしょう)はこれです:http: //pgfoundry.org/projects/tablelog/

私はいくつかのプロジェクトでそれを使用しました、そしてそれはテーブルの歴史的情報とそれらに何が起こったのかを捕らえるのに素晴らしいです。そうすれば、独自のトリガーを作成する必要はありません。

于 2012-09-08T14:25:43.950 に答える