2012-02-23 7 views
0

私はSQLのデータベースを持ち、3者から私のデータベースへのフィードを取得しています(毎回更新しています)。データベースからの通知を取得する

select * form table Bonus > 50%

私はWindowsサービスを使用して、すべてのデータベースを確認するか、私はSQLでそれを設定することができますし、SQLからのアラートを取得しなければならない。私はexamleのような時に自分のアプリケーションに通知を取得する必要がありますか?できるだけ早く通知を受けて、1〜5秒ごとにデータベースをチェックするのは大変です。

答えて

3

これはデータベースによって異なります。ほとんどすべてのデータベースは、データが変更されたときにトリガーを実行できますが、トリガー内のコードは通常SQL(接続のオープンなどはサポートしていません)です。

Oracleのように、トリガーを許可するものもあれば、Javaコードも実行できるものがあります。ここでは、データベース内にソリューションを構築できます。

しかし、欠点があります。シグナルを送信できないとどうなりますか?

一般的な解決方法は、問題のクエリを1時間程度実行し、条件が満たされたときに信号を送信するコードを書くことです。

クエリが高価な場合は、次の2つを混在させることができます:何かが変更されたとき(トリガを使用)にクエリを実行し、結果をテーブルに保存します(「$ timestampで何か起こった」のような)。最後の信号以降に更新があったかどうかを確認してください。

関連する問題