Обновление отметки времени при обновлении строки в PostgreSQL - PullRequest
62 голосов
/ 24 июня 2009

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

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

Есть ли что-то подобное в PostgreSQL?

1 Ответ

100 голосов
/ 24 июня 2009

Создайте функцию, которая обновляет столбец 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...