Обсуждение: A question relative to creating an audit table

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

A question relative to creating an audit table

От
stan
Дата:
I ma considering setting up a function, and triggers to put a record in an
audit table when certain tables are altered. I pretty much think I know how
to do this, with one exception.

Can a function, called by a trigger, determine what table it was called
for?

-- 
"They that would give up essential liberty for temporary safety deserve
neither liberty nor safety."
                        -- Benjamin Franklin



Re: A question relative to creating an audit table

От
Andrei Zhidenkov
Дата:
Why not to pass TG_TABLE_SCHEMA and TG_TABLE_NAME in its arguments?

> On 27. Feb 2020, at 22:28, stan <stanb@panix.com> wrote:
> 
> I ma considering setting up a function, and triggers to put a record in an
> audit table when certain tables are altered. I pretty much think I know how
> to do this, with one exception.
> 
> Can a function, called by a trigger, determine what table it was called
> for?
> 
> -- 
> "They that would give up essential liberty for temporary safety deserve
> neither liberty nor safety."
>                         -- Benjamin Franklin
> 
> 




Re: A question relative to creating an audit table

От
Adrian Klaver
Дата:
On 2/27/20 1:28 PM, stan wrote:
> I ma considering setting up a function, and triggers to put a record in an
> audit table when certain tables are altered. I pretty much think I know how
> to do this, with one exception.
> 
> Can a function, called by a trigger, determine what table it was called
> for?
> 

Asked and answered:

https://www.postgresql.org/message-id/CAKFQuwY=wXXLZBJMv5ULk4P4B5sF+fnZXWThp-UGERE-NxEb4w@mail.gmail.com

-- 
Adrian Klaver
adrian.klaver@aklaver.com



Re: A question relative to creating an audit table

От
Vik Fearing
Дата:
On 27/02/2020 22:28, stan wrote:
> I ma considering setting up a function, and triggers to put a record in an
> audit table when certain tables are altered. I pretty much think I know how
> to do this, with one exception.

There are extensions out there that deal with this for you.  Here is
one: https://github.com/xocolatl/periods/

> Can a function, called by a trigger, determine what table it was called
> for?

Yes.
-- 
Vik Fearing



Re: A question relative to creating an audit table

От
stan
Дата:
On Thu, Feb 27, 2020 at 10:30:15PM +0100, Andrei Zhidenkov wrote:
> Why not to pass TG_TABLE_SCHEMA and TG_TABLE_NAME in its arguments?
> 
> > On 27. Feb 2020, at 22:28, stan <stanb@panix.com> wrote:
> > 
> > I ma considering setting up a function, and triggers to put a record in an
> > audit table when certain tables are altered. I pretty much think I know how
> > to do this, with one exception.
> > 
> > Can a function, called by a trigger, determine what table it was called
> > for?
> > 

I suppose I could do that. I have in mind a single function to accomplish the
audit log, but I will have to have unique triggers for each table. I was
just hoping not to have to do that. Are these values that I could read
automatically? Or do I have to hard code them?

-- 
"They that would give up essential liberty for temporary safety deserve
neither liberty nor safety."
                        -- Benjamin Franklin



Re: A question relative to creating an audit table

От
Andrei Zhidenkov
Дата:
Please, read chapter 43.10.1 of the PostgreSQL documentation (https://www.postgresql.org/docs/11/plpgsql-trigger.html). Just to be sure we are on the same page.

On 28. Feb 2020, at 14:59, stan <stanb@panix.com> wrote:

On Thu, Feb 27, 2020 at 10:30:15PM +0100, Andrei Zhidenkov wrote:
Why not to pass TG_TABLE_SCHEMA and TG_TABLE_NAME in its arguments?

On 27. Feb 2020, at 22:28, stan <stanb@panix.com> wrote:

I ma considering setting up a function, and triggers to put a record in an
audit table when certain tables are altered. I pretty much think I know how
to do this, with one exception.

Can a function, called by a trigger, determine what table it was called
for?


I suppose I could do that. I have in mind a single function to accomplish the
audit log, but I will have to have unique triggers for each table. I was
just hoping not to have to do that. Are these values that I could read
automatically? Or do I have to hard code them?

--
"They that would give up essential liberty for temporary safety deserve
neither liberty nor safety."
-- Benjamin Franklin