Обсуждение: trigger ddl actions in a table

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

trigger ddl actions in a table

От
"König, Monika"
Дата:

I need a way for logging every action on the system catalog. I must have a
table which shows when a tables was created or updated or deleted. I need
the date  of the change .

I tried to make an trigger on pg_catalog.pg_class but this throws an error :
"ERROR: permission denied: "pg_class" is a system catalog".

I can see all ddl in my log files, but
    - there are even the errors in and
    - i can't use it for a select


Is there an possibility for having such an system-action table??



Thanks

Monika König






Re: trigger ddl actions in a table

От
Brad Nicholson
Дата:
On Fri, 2007-11-16 at 07:01 +0100, "König, Monika" wrote:
>
> I need a way for logging every action on the system catalog. I must have a
> table which shows when a tables was created or updated or deleted. I need
> the date  of the change .
>
> I tried to make an trigger on pg_catalog.pg_class but this throws an error :
> "ERROR: permission denied: "pg_class" is a system catalog".
>
> I can see all ddl in my log files, but
>     - there are even the errors in and
>     - i can't use it for a select
>
>
> Is there an possibility for having such an system-action table??

You can't put triggers on the system catalog tables (as your error
points out).  The only way that I know of to track this directly through
the DB is to log the DDL changes in the Postgres logs, and then parse
that out.


--
Brad Nicholson  416-673-4106
Database Administrator, Afilias Canada Corp.