在我的 Postgres 数据库中,我有一个存储过程,比如sp_1()
. 现在我有一张名为dispatch_details
. 偶尔会插入到该表中。因此,如果白天在此表中更新数据,我想安排sp_1
在当天晚上 8 点。sp_1()
更具体地说,如果dispatch_details
表没有更新,我不想安排。
我怎样才能实现它?请帮忙。
(注意:我不想sp_1
在更新时运行dispatch_details
,所以我将无法在这里使用普通触发器。)
在我的 Postgres 数据库中,我有一个存储过程,比如sp_1()
. 现在我有一张名为dispatch_details
. 偶尔会插入到该表中。因此,如果白天在此表中更新数据,我想安排sp_1
在当天晚上 8 点。sp_1()
更具体地说,如果dispatch_details
表没有更新,我不想安排。
我怎样才能实现它?请帮忙。
(注意:我不想sp_1
在更新时运行dispatch_details
,所以我将无法在这里使用普通触发器。)
我不知道您为什么不想为此任务使用触发器。在我看来,触发器将是最简单的方法。另一种选择是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
.
这是一个巨大的解决方法,恕我直言,不可取,但会做你想做的事。