问题遇到的现象和发生背景
如下面的代码,当指定的字段更新的时候触发,当更新的时候这新值与旧值相同,我不想他执行这个触发器,该怎么做呢?感谢各位,帮个忙
问题相关代码,请勿粘贴截图
CREATE TRIGGER "biz_areainfos_trigger" AFTER UPDATE of map_contour ON "public"."biz_areainfos"
FOR EACH ROW
EXECUTE PROCEDURE "biz_areainfos_trigger"();
如下面的代码,当指定的字段更新的时候触发,当更新的时候这新值与旧值相同,我不想他执行这个触发器,该怎么做呢?感谢各位,帮个忙
CREATE TRIGGER "biz_areainfos_trigger" AFTER UPDATE of map_contour ON "public"."biz_areainfos"
FOR EACH ROW
EXECUTE PROCEDURE "biz_areainfos_trigger"();
加一个WHEN条件语句,只有实际更新了值才执行。
还有建议Procedure起别的名字
CREATE TRIGGER biz_areainfos_trigger
AFTER UPDATE of map_contour ON "public"."biz_areainfos"
FOR EACH ROW
WHEN (OLD.map_contour IS DISTINCT FROM NEW.map_contour)
EXECUTE PROCEDURE abc();