首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果数据尚未加载到PostgreSQL表中,则发出警报

如果数据尚未加载到PostgreSQL表中,则发出警报
EN

Stack Overflow用户
提问于 2018-12-05 21:43:42
回答 1查看 279关注 0票数 1

如果表或字段/列没有插入当天的任何数据,有什么方法可以提醒我吗?

我有几个作业可以自动将数据插入到我的表中,但是如果我不查询表,就无法知道它是否真的运行了。

EN

回答 1

Stack Overflow用户

发布于 2018-12-06 04:40:50

这是一个如何使用触发器实现这样的事情的示例:

首先,我们要在其中检查数据修改的表:

代码语言:javascript
复制
CREATE TABLE collected_values (
   ...
);

现在是一个表,我们在其中记录数据修改( fillfactor是为了获得热更新并避免表膨胀,即使更改率很高也是如此):

代码语言:javascript
复制
CREATE TABLE last_updated (
   updated_table regclass PRIMARY KEY,
   mod_time timestamp with time zone NOT NULL
) WITH (fillfactor = 40);

INSERT INTO last_updated
   VALUES ('collected_values'::regclass, '-infinity');

触发器函数和触发器:

代码语言:javascript
复制
CREATE FUNCTION record_mod() RETURNS trigger
   LANGUAGE plpgsql AS
$$BEGIN
   UPDATE last_updated
   SET mod_time = current_timestamp
   WHERE updated_table = TG_RELID;

   RETURN NULL;
END;$$;

CREATE TRIGGER record_mod AFTER INSERT OR UPDATE OR DELETE ON collected_values
   FOR EACH STATEMENT EXECUTE PROCEDURE record_mod();

现在,last_updated将始终包含上次修改该表的时间。监视这些值以获取警报。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53633751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档