Re: PostgreSQL trigger how to detect a column value explicitely modified - Mailing list pgsql-general

From PALAYRET Jacques
Subject Re: PostgreSQL trigger how to detect a column value explicitely modified
Date
Msg-id 503814564.256630396.1762334690791.JavaMail.zimbra@meteo.fr
Whole thread Raw
In response to Re: PostgreSQL trigger how to detect a column value explicitely modified  (Laurenz Albe <laurenz.albe@cybertec.at>)
List pgsql-general
Hello,

I think you knew that I don't really want to create a function in language C to handle and test the values of the
columnsin the SQL query. For me, it is much easier to use the solution of the trigger " BEFORE|AFTER UPDATE OF col ". 
Joke aside, I hadn't thought of that ; it is an excellent idea (simple solution).
I tested it ; it works as expected.

Thanks to people who replied.
Regards.

----- Mail original -----
De: "Laurenz Albe" <laurenz.albe@cybertec.at>
À: "PALAYRET Jacques" <jacques.palayret@meteo.fr>, pgsql-general@lists.postgresql.org
Envoyé: Mardi 4 Novembre 2025 18:29:05
Objet: Re: PostgreSQL  trigger how to detect a column value explicitely modified

On Tue, 2025-11-04 at 12:48 +0000, PALAYRET Jacques wrote:
> In a trigger body, is there a simple way to know if a column value has been explicitely modified ?
> Explicitely modified ; in others words, typically indicated in the SET clause of the UPDATE.
> A simple way ; I mean without analysing the SQL statement which can be very difficult according to the statement.

Unless you want to write a C trigger function you can use

  CREATE TRIGGER ... BEFORE|AFTER UPDATE OF col ON tab FOR EACH ROW ...

Then the trigger function will only be called if the SET clause of UPDATE
contains the column "col".

Yours,
Laurenz Albe



pgsql-general by date:

Previous
From: Bala M
Date:
Subject: Re: Index corruption issue after migration from RHEL 7 to RHEL 9 (PostgreSQL 11 streaming replication)
Next
From: Adrian Klaver
Date:
Subject: Re: Index corruption issue after migration from RHEL 7 to RHEL 9 (PostgreSQL 11 streaming replication)