如果表或字段/列没有插入当天的任何数据,有什么方法可以提醒我吗?
我有几个作业可以自动将数据插入到我的表中,但是如果我不查询表,就无法知道它是否真的运行了。
发布于 2018-12-06 04:40:50
这是一个如何使用触发器实现这样的事情的示例:
首先,我们要在其中检查数据修改的表:
CREATE TABLE collected_values (
...
);
现在是一个表,我们在其中记录数据修改( fillfactor
是为了获得热更新并避免表膨胀,即使更改率很高也是如此):
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');
触发器函数和触发器:
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
将始终包含上次修改该表的时间。监视这些值以获取警报。
https://stackoverflow.com/questions/53633751
复制相似问题