Re: Is it possible to get username information while writingtrigger?

From: a <372660931(at)qq(dot)com>
To: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Is it possible to get username information while writingtrigger?
Date: 2018-05-07 08:39:41
Message-ID: tencent_130940D2578FB98F02A3245C@qq.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thank you for your reply;

Please allow me to ask few more questions:

1, Since I'm writing a C trigger function, is there any method for me to get some of the basic information like the follow:

(1) Total number of rows;
(2) Rows' names;
(3) Value of OLD and NEW;

2, Is there any possibility of passing the SQL statement it self into the trigger?

3, Is it possible for me to exam before statement trigger so that I would be able to loop it once and copying the update information to the rest of rows.

Thanks a lot!

------------------ Original ------------------
From: "Laurenz Albe";<laurenz(dot)albe(at)cybertec(dot)at>;
Send time: Monday, May 7, 2018 3:57 PM
To: "a"<372660931(at)qq(dot)com>; "pgsql-general"<pgsql-general(at)postgresql(dot)org>;

Subject: Re: Is it possible to get username information while writingtrigger?

a wrote:
> What I want is to add a log entry at the last column of each row, which will record the
> history update, insert automatically when relative statement is processed.
>
> I have read the documentation on triggers, which helps a lot. However, I may have few
> more extra requirement to complete my wishes:
>
> 1, I would like to get the username of who executed the statement;
>
> 2, I would like to get the column name that is being updated;
>
> If it is possible and how should I do it??

You could use the "current_user" function to get the current user.

Mind, however, that updates caused by a cascading update from a
foreign key constraint will be executed as the owner of the table,
so it would be better to use "session_user" to avoid surprises.

You cannot get the column name, because PostgreSQL updates a whole row,
not an individual column. The best you can do is to check which
column values are different in OLD and NEW.

Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Laurenz Albe 2018-05-07 08:59:20 Re: Is it possible to get username information while writingtrigger?
Previous Message Laurenz Albe 2018-05-07 07:57:20 Re: Is it possible to get username information while writing trigger?