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

Поиск
Список
Период
Сортировка
От Dmitry E. Oboukhov
Тема Re: Re: [pgsql-ru-general] Номер правки записи
Дата
Msg-id 20150608192323.GX19139@vdsl.uvw.ru
обсуждение исходный текст
Ответ на Re: Re: [pgsql-ru-general] Номер правки записи  (Andrey Oktyabrskiy <ano@bestmx.net>)
Список pgsql-ru-general
>> а можно пример триггера, а то я тут не понимаю вообще.
>>
>> есть табличка
>>
>> (
>>      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;

а допустимо разве менять переменные внутри NEW?
ухты, я в этом направлении ничего не знал даже.

пошел читать документацию...

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

--

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera@debian.org jabber://UNera@uvw.ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537

Вложения

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

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