Я создаю таблицу аудита с помощью функции триггера PostgreSQL ниже
CREATE OR replace FUNCTION company_change_audit() RETURNS TRIGGER AS $$
BEGIN
IF OLD IS DISTINCT FROM NEW THEN
INSERT INTO history.companies(name, email, logo, phone_number, alt_phone_number, company_id) VALUES (OLD.name, OLD.email, OLD.logo, OLD.phone_number, OLD.alt_phone_number, OLD.id);
END IF;
RETURN NEW;
END;
$$ LANGUAGE 'plpgsql';
проблема в том, что таблица с триггером имеет поле updated_at
, которое изменяется при обновлении строки, что вызывает OLD IS DISTINCT FROM NEW
не работает, поэтому возможно ли игнорировать столбец updated_at
при проверке, действительно ли строка изменилась с использованием IS DISTINCT FROM
?
, если нет, каким другим способом я мог бы добиться этого кроме проверки каждого отдельного столбца в отдельности, что может стать громоздким для таблицы с более чем несколькими столбцами.
заранее спасибо