gpt4 book ai didi

database - 我试图忽略 Postgres 更新触发器中的触发器字段

转载 作者:行者123 更新时间:2023-11-29 14:25:08 25 4
gpt4 key购买 nike

我设置了一个触发器来更新 last_edit_date 列,我试图忽略 last_access_date 列,因为它在每次访问页面时都会更新,这会触发“last_edited”触发器,因为它将更新视为编辑。我正在为触发器尝试以下代码,但收到以下错误:

pg_execute(): Query failed: ERROR: column "last_access_date" does not exist

这是代码 -

BEGIN
IF NOT (UPDATE(last_access_date))
THEN
NEW.last_edit_date := now();
RETURN NEW;
END IF;
END;

此外,该列确实存在,但它是一个与触发器相关的列(不确定这是否重要)。

最佳答案

如果你想忽略所有修改last_access_date的更新,你可以使用:

IF NEW.last_access_date = OLD.last_access_date THEN
NEW.last_edit_date = current_timestamp;
END IF;

旁白:last_access_date 让我很紧张,因为许多更新对 PostgreSQL 不利。确保列上没有索引,并且此表的 fillfactor 设置为小于 100,以便您可以获得此列的热更新。

关于database - 我试图忽略 Postgres 更新触发器中的触发器字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58687845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com