update logging

Поиск
Список
Период
Сортировка
От Helge Bahmann
Тема update logging
Дата
Msg-id Pine.LNX.4.21.0010191810090.2745-100000@lothlorien.stunet2.tu-freiberg.de
обсуждение исходный текст
Список pgsql-novice
Hi,

I want to keep track of modifications to the records in a table.

I tried the following (see example SQL below):
- Table "t" contains my data
- View "v" presents the relevant data to a given group of users; rewrite
rules on "v" carry the changes over to "t" (actually, I have a
bunch of views)
- Table "log" logs the previews values of the records in "t"; rewrite
rules on "t" save the records in "t" about to be modified into "log"

Problem is, I have to grant select permissions on "t" to my users for the
logging rule to operate properly. A similiar problem goes for triggers.

Can someone make a suggestion how I would go about implementing
modification logging?

Thanks for any help,
Helge

create table t (id serial, value int);

create table log (id int, value int, who name default current_user,
    when timestamp default current_time);
create rule upd_log as on update to t do
    insert into log(id, value) values(old.id, old.value);

create view v as select id, value from t;
create rule upd as on update to v do instead
    update t set value=new.value where id=old.id;

A user modifying a row via the view "v" needs read permissions on "t"
for the rule "upd_log" to be able to retrieve the old record values from
"t".

--
Hi! I'm a .signature virus! Put me into your .signature and help me spread!

% rm * .o
rm: cannot remove '.o': No such file or directory


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

Предыдущее
От: "D. Duccini"
Дата:
Сообщение: Re: changing data type
Следующее
От:
Дата:
Сообщение: Re: changing data type