2017-07-07 63 views
0

在我的Postgres数据库中,我有一个存储过程,例如sp_1()。 现在我有一个表dispatch_details。插入到这张桌子偶尔会发生一次。所以如果白天在这个表中更新数据,我想在当天的晚上8点安排sp_1。更具体地说,如果dispatch_details表未更新,我不想安排sp_1()基于表插入调度存储过程postgres

我该如何实现它?请帮忙。

(注:我要运行sp_1为当dispatch_details被更新,这样我就不能在这里使用正常触发。)

+0

你好,欢迎来到SO社区。我已编辑你的问题更清楚(可能需要一段时间才能看到同行评审)。在这里提问时,请腾出时间让它们易于阅读并添加尽可能多的信息。您可能还想添加迄今为止已尝试的内容。 – Asunez

回答

0

我不知道你为什么不想为此任务使用触发器。在我看来,触发器是最简单的方法。 另一种选择是在这样一种方式来编程sp_1(),它是在忽略大小写存在于前一天的表没有更新,通过存储在另一个表令牌的方式:

CREATE TABLE foo (last_update DATE, last_pgagent_check DATE); 

此令牌(last_update )会在每次更新表时通过触发器(ha!)进行更新。那么你的SP首先会检查last_update是否大于last_pgagent_check,如果是的话,执行它应该的功能,否则就更新last_pgagent_checkSELECT CURRENT_DATE

这是一个巨大的解决方法,恕我直言不建议,但会做你想做的。