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

From Andrey Oktyabrskiy
Subject Re: Re: [pgsql-ru-general] Номер правки записи
Date
Msg-id 5575D3FB.9030608@bestmx.net
Whole thread Raw
In response to Re: [pgsql-ru-general] Номер правки записи  (Warstone@list.ru <warstone@list.ru>)
Responses Re: Re: [pgsql-ru-general] Номер правки записи
List 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 by date:

Previous
From: "Dmitry E. Oboukhov"
Date:
Subject: Re: Re: [pgsql-ru-general] Номер правки записи
Next
From: "Dmitry E. Oboukhov"
Date:
Subject: Re: Re: [pgsql-ru-general] Номер правки записи