Спасибо за информацию, Митхун и Алекс Брасетвик.
Я бы хотел добавить одну небольшую поправку к курку. Поскольку мы, скорее всего, хотим, чтобы в столбце , измененном , сохранялась метка времени, когда строка была изменена в последний раз, а не когда она была целью оператора UPDATE, мы должны сравнить новое и старое значение строки. Мы обновляем измененный столбец , только если эти два значения отличаются.
CREATE OR REPLACE FUNCTION update_modified_timestamp() RETURNS TRIGGER
LANGUAGE plpgsql
AS
$$
BEGIN
IF (NEW != OLD) THEN
NEW.modified = CURRENT_TIMESTAMP;
RETURN NEW;
END IF;
RETURN OLD;
END;
$$;
Этот триггер гарантирует, что измененный столбец будет обновлен, только если операция UPDATE действительно изменит значения, хранящиеся в строке.