Re: Re: [pgsql-ru-general] Номер правки записи

Поиск
Список
Период
Сортировка
От Andrey Oktyabrskiy
Тема Re: Re: [pgsql-ru-general] Номер правки записи
Дата
Msg-id 5575D3FB.9030608@bestmx.net
обсуждение исходный текст
Ответ на Re: [pgsql-ru-general] Номер правки записи  (Warstone@list.ru <warstone@list.ru>)
Ответы Re: Re: [pgsql-ru-general] Номер правки записи  ("Dmitry E. Oboukhov" <unera@debian.org>)
Список pgsql-ru-general
On 06/08/2015 08:13 PM, Dmitry E. Oboukhov wrote:
 > а можно пример триггера, а то я тут не понимаю вообще.
 >
 > есть табличка
 >
 > (
 >      id: SERIAL,
 >      field: TEXT,
 >      version: INTEGER
 > )
 >
 > Нужно написать триггер который будет на каждый
 >
 > UPDATE table SET field = 'bla' WHERE id = 123;
 >
 > делать инкремент version попутно.
CREATE OR REPLACE FUNCTION incver () RETURNS TRIGGER AS $$
BEGIN
   IF TG_OP = 'INSERT' THEN
     new.version := 1;
   ELSIF TG_OP = 'UPDATE' THEN
     new.version := old.version + 1;
   END IF;
   RETURN new;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER tbl_inc_version BEFORE INSERT OR UPDATE ON tbl
   FOR EACH ROW EXECUTE PROCEDURE incver();


В списке pgsql-ru-general по дате отправления:

Предыдущее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: Re: Re: [pgsql-ru-general] Номер правки записи
Следующее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: Re: Re: [pgsql-ru-general] Номер правки записи