我需要编写插入或更新触发器,但是在 WHEN 条件中要比较 OLD 和 NEW 行。
根据文档,对于插入操作,OLD 为 null。那么我如何在 INSERT 和 UPDATE 触发器的 WHEN 条件中使用 OLD 呢?
触发器示例:
CREATE TRIGGER mytrigger
BEFORE INSERT OR UPDATE ON "mytable"
FOR EACH ROW
WHEN (NEW.score > 0 AND OLD.score <> NEW.score)
EXECUTE PROCEDURE mytrigger();
但是对于插入的 OLD 值为空。
OLD.score IS NULL
可能会有用。或者您可以拥有两个单独的触发器(仍然可以共享相同的过程)。 - Thilomytrigger()
内部定义when condition
。 - Shubham Batra