【问题标题】:scheduling a stored procedure based on table insertion postgres基于表插入 postgres 调度存储过程
【发布时间】:2017-07-07 11:44:23
【问题描述】:

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

我该如何完成它?请帮忙。

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

【问题讨论】:

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

标签: postgresql-9.1 pgagent


【解决方案1】:

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

CREATE TABLE foo (last_update DATE, last_pgagent_check DATE);

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

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

【讨论】:

    猜你喜欢
    • 2021-07-07
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2014-05-03
    相关资源
    最近更新 更多