Подтвердить что ты не робот

Обновить временную метку, когда строка обновлена ​​в PostgreSQL

В MySQL мы можем выполнить это, когда он обновляет столбец changetimestamp каждый раз, когда изменяется строка:

create table ab (
  id int, 
  changetimestamp timestamp 
    NOT NULL 
    default CURRENT_TIMESTAMP 
    on update CURRENT_TIMESTAMP 
);

Есть ли что-то похожее на выполнение выше в PostgreSQL?

4b9b3361

Ответ 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();