Обсуждение: defaults on updates

Поиск
Список
Период
Сортировка

defaults on updates

От
Martin Marques
Дата:
Hi,
I'm trying to make some sort of function, rule, trigger, or what ever that
would be capable of modifing my table on an update.

Basically, I have 5 fields, one being a PK (SERIAL), 3 with information, and
the last one a timestamp field that will show the last time the register was
modified (tmodif which has a DEFAULT CURRENT_TIMESTAMP).

Now, eveytime someone modifys any, or all of the 3 information fields, I want
the tmodif field of that register to be set to now(). I tried with rules, but
just didn't work (obviously, and not so), even with INSTEAD.

The only way I see of doing it is through a view/rule, but I would leave that
as the last resource.

Any ideas?

-- 10:43:01 up 10 days, 18:05,  4 users,  load average: 0.95, 0.44, 0.35
-----------------------------------------------------------------
Martín Marqués        | select 'mmarques' || '@' || 'unl.edu.ar'
Centro de Telematica  |  DBA, Programador, Administrador            Universidad Nacional                 del Litoral
-----------------------------------------------------------------



Re: defaults on updates

От
Tom Lane
Дата:
Martin Marques <martin@bugs.unl.edu.ar> writes:
> Basically, I have 5 fields, one being a PK (SERIAL), 3 with information, and 
> the last one a timestamp field that will show the last time the register was 
> modified (tmodif which has a DEFAULT CURRENT_TIMESTAMP).

> Now, eveytime someone modifys any, or all of the 3 information fields,
> I want the tmodif field of that register to be set to now().

This is trivial to do with a trigger --- you just need something like
NEW.lastmod := now();RETURN NEW;

There's a complete example at the bottom of this page:
http://developer.postgresql.org/docs/postgres/plpgsql-trigger.html
        regards, tom lane