Обновление отметки времени при обновлении строки в 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();
Другие вопросы по тегам