0

在我的 Postgres 数据库中,我有一个存储过程,比如sp_1(). 现在我有一张名为dispatch_details. 偶尔会插入到该表中。因此,如果白天在此表中更新数据,我想安排sp_1在当天晚上 8 点。sp_1()更具体地说,如果dispatch_details表没有更新,我不想安排。

我怎样才能实现它?请帮忙。

(注意:我不想sp_1在更新时运行dispatch_details,所以我将无法在这里使用普通触发器。)

4

1 回答 1

0

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

CREATE TABLE foo (last_update DATE, last_pgagent_check DATE);

last_update每次更新表时,此令牌 ( ) 将通过触发器 (ha!) 进行更新。然后您的 SP 将首先检查是否last_update大于last_pgagent_check,如果是,则执行它应该执行的函数,否则只需last_pgagent_check更新SELECT CURRENT_DATE.

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

于 2017-08-15T17:12:03.790 回答