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

From: Andrey Oktyabrskiy <ano(at)bestmx(dot)net>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: Re: [pgsql-ru-general] Номер правки записи
Date: 2015-06-08 17:42:19
Message-ID: 5575D3FB.9030608@bestmx.net
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: 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();

In response to

Responses

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2015-06-08 19:23:23 Re: Re: [pgsql-ru-general] Номер правки записи
Previous Message Dmitry E. Oboukhov 2015-06-08 17:13:35 Re: Re: [pgsql-ru-general] Номер правки записи