2017-07-07 12 views
0

私のPostgresデータベースには、ストアドプロシージャが1つあります。たとえば、sp_1()です。 今、dispatch_detailsというテーブルがあります。このテーブルへの挿入はしばらくの間起こります。したがって、昼間にこの表でデータが更新された場合は、その日に午後8時にsp_1をスケジュールします。具体的には、テーブルが更新されていない場合、sp_1()をスケジュールしたくありません。テーブル挿入postgresに基づいてストアドプロシージャをスケジュールする

どうすればできますか?助けてください。

(注:私はここに、通常のトリガーを使用することができなくなりますようにdispatch_detailsが、更新されたとき、私はとしてsp_1を実行したいとしません。)

+0

こんにちは、SOコミュニティにようこそ。私はあなたの質問をより明確に編集しました(見えるようにピアレビューされるまでに時間がかかるかもしれません)。ここで質問をするときは、簡単に読めるようにして、できるだけ多くの情報を追加してください。これまでに試したことを追加することもできます。 – Asunez

答えて

0

あなたはなぜ私にはわかりませんこのタスクにトリガを使用したくない場合。私の目では、トリガーが最も簡単な方法でしょう。 別のオプションは、テーブルに更新が別のテーブルに格納されたトークンを用いて、前日になかった場合には無視されるようにsp_1()をプログラムすることになります。

CREATE TABLE foo (last_update DATE, last_pgagent_check DATE); 

このトークン(last_update )は、テーブルが更新されるたびにトリガー(ha!)によって更新されます。その後、あなたのSPはlast_updatelast_pgagent_checkより大きいかどうか最初にチェックし、そうであれば、それがそうでなければlast_pgagent_checkSELECT CURRENT_DATEで更新します。

これは大きな回避策であり、お勧めできませんが、あなたが望むことをするでしょう。

関連する問題