Как проверить, что определенные поля изменились при Update в PostgreSQL?

Есть таблица, в ней 20 полей. Необходимо сделать проверку при UPDATE, что при обновлении значение 15 из этих полей не изменилось (самые важные). Если же они изменились, то делать запись в другую таблицу. Как это сделать проще всего?
Вручную что ли дважды писать все названия полей?

IF NEW.abc <> OLD.abc AND NEW.bac <> OLD.bac AND .... THEN
    INSERT INTO ...;
END IF;
  • Вопрос задан
  • 642 просмотра
Решения вопроса 1
@wapmorgan Автор вопроса
Сам спросил, сам нашёл ответ:
IF ROW(NEW.fieldA, NEW.fieldB, NEW.fieldC) IS DISTINCT FROM 
   ROW(OLD.fieldA, OLD.fieldB, OLD.fieldC) THEN
    -- here code
END IF;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы