我有一个场景,触发器功能在某种类型的更新之前被激活。并且为了满足该条件,必须将其中一列从“旧”和“新”对象中排除。
CREATE FUNCTION example_function() RETURNS trigger AS
$example_function$
BEGIN
IF
(OLD <> NEW) IS TRUE THEN
//Do something here
END IF;
RETURN NEW;
END;
$example_function$
LANGUAGE plpgsql;
CREATE TRIGGER example_function
BEFORE UPDATE
ON some_table
FOR EACH ROW
EXECUTE PROCEDURE example_function();
问题是,该表有50多列,以后很难输入或维护。
我想排除的列-假设MODIFIED_DATE将满足每次都不同的条件,但是如何才能从检查中完全排除它呢?
(旧<>新排除MODIFIED_DATE)为真-在逻辑上应该会发生类似的事情
2条答案
按热度按时间jgzswidk1#
也许您可以使用这样的代码,其中
tab
是带有触发器的表:p8h8hvxi2#
您可以比较不包括选定列的记录的JSON表示形式: