> It's not a full solution anyway since it prevents any kind of update on the table due to check constraints firing even if target field not updated. > Well, we can extend the check within the trigger: if (coalesce old.a=new.a -- Update OR new.a = currval(tg_argv[0] -- Insert ) then return new; end if; Marc