Обновление отметки времени при обновлении строки в PostgreSQL
В MySQL мы можем выполнить это, где он обновляет столбец changetimestamp
каждый раз, когда строка изменяется:
create table ab (
id int,
changetimestamp timestamp
NOT NULL
default CURRENT_TIMESTAMP
on update CURRENT_TIMESTAMP
);
Есть ли что-то подобное в PostgreSQL?
1 ответ
Создайте функцию, которая обновляет столбец changetimestamp таблицы следующим образом:
CREATE OR REPLACE FUNCTION update_changetimestamp_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.changetimestamp = now();
RETURN NEW;
END;
$$ language 'plpgsql';
Создайте триггер в таблице, который вызывает функцию update_changetimestamp_column() каждый раз, когда происходит обновление, вот так:
CREATE TRIGGER update_ab_changetimestamp BEFORE UPDATE
ON ab FOR EACH ROW EXECUTE PROCEDURE
update_changetimestamp_column();