我有一个包含多个字段和一个额外的不同步字段的表。创建了一个触发器和触发器函数以在任何更新/插入之前将 outofsync 字段值设置为 true。
扳机:
CREATE TRIGGER goods_update_outofsync
BEFORE UPDATE
ON goods
FOR EACH ROW
EXECUTE PROCEDURE tg_update_goods_outofsync();
触发功能:
CREATE OR REPLACE FUNCTION tg_update_goods_outofsync()
RETURNS trigger AS
$BODY$
BEGIN
NEW.outofsync=true;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION tg_update_goods_outofsync()
OWNER TO postgres;
现在来到一个“简单”的问题,我无法找到答案:如何手动将 outofsync 字段更新为 false,因为每次尝试后它都会被触发器自动更改为 true。
编辑:
这几乎有效:
IF (NEW.outofsync = OLD.outofsync) THEN
NEW.outofsync=true;
END IF;
除非 outofsync 字段的值已经为 false 并且我想将其设置为 false,因为那时它变为 true...
提前谢谢你的帮助!