我写了下面的触发器:
CREATE FUNCTION trig_func() RETURNS trigger AS $$
BEGIN
IF NEW = OLD
THEN -- update would do nothing, doing something...
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trig BEFORE UPDATE ON some_table
FOR EACH ROW EXECUTE PROCEDURE trig_func();
它清楚地表明了我想要实现的目标,但是用什么来代替 NEW = OLD
才是正确的?
最佳答案
is distinct from
运算符可以比较完整的行并将正确处理空值。
所以你想要
if new is not distinct from old then
...
end if;
关于postgresql - 检测更新不会更改行的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51342250/