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] Номер правки записи
|
| Список | 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 по дате отправления: