基于表插入postgres调度存储过程

时间:2017-07-07 11:44:24

标签: postgresql-9.1 pgagent

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

我怎样才能完成它?请帮忙。

(注意:我想要在更新dispatch_details时运行sp_1,这样我就无法在此处使用普通触发器。)

1 个答案:

答案 0 :(得分: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

这是一个巨大的解决方法,并且不可取,但会做你想做的事。