Thread: How to manipulate field in New record

How to manipulate field in New record

From
Lorusso Domenico
Date:
Hello,
Looking for a global solution I've write e trigger function that as optional parameter (argv[0]) receive the name of a specific parameter.

My need is to get the filed from NEW and OLD record manipulate and set back the field with new value.

Problem 1: how to get and set this field
Problem 2: the field has Composit type

Re: How to manipulate field in New record

From
hubert depesz lubaczewski
Date:
On Wed, Jun 07, 2023 at 02:12:58PM +0200, Lorusso Domenico wrote:
> Hello,
> Looking for a global solution I've write e trigger function that as
> optional parameter (argv[0]) receive the name of a specific parameter.
> 
> My need is to get the filed from NEW and OLD record manipulate and set back
> the field with new value.
> 
> Problem 1: how to get and set this field
> Problem 2: the field has Composit type

Do this in pl/perl, pl/python, pl/tcl or anything like this.

Or use one of methods shown here:
https://www.depesz.com/2021/04/21/getting-value-from-dynamic-column-in-pl-pgsql-triggers/

depesz



Re: How to manipulate field in New record

From
Adrian Klaver
Date:
On 6/7/23 05:12, Lorusso Domenico wrote:
> Hello,
> Looking for a global solution I've write e trigger function that as 
> optional parameter (argv[0]) receive the name of a specific parameter.
> 
> My need is to get the filed from NEW and OLD record manipulate and set 
> back the field with new value.

A new row won't have the OLD RECORD.

Read:

https://www.postgresql.org/docs/current/plpgsql-trigger.html

and look at the examples.

> 
> Problem 1: how to get and set this field
> Problem 2: the field has Composit type

-- 
Adrian Klaver
adrian.klaver@aklaver.com




Re: How to manipulate field in New record

From
Lorusso Domenico
Date:
yes I know, the trigger should be before insert update and delete, and the function decide what manipulate basing on TG_OP

Il giorno mer 7 giu 2023 alle ore 15:57 Adrian Klaver <adrian.klaver@aklaver.com> ha scritto:
On 6/7/23 05:12, Lorusso Domenico wrote:
> Hello,
> Looking for a global solution I've write e trigger function that as
> optional parameter (argv[0]) receive the name of a specific parameter.
>
> My need is to get the filed from NEW and OLD record manipulate and set
> back the field with new value.

A new row won't have the OLD RECORD.

Read:

https://www.postgresql.org/docs/current/plpgsql-trigger.html

and look at the examples.

>
> Problem 1: how to get and set this field
> Problem 2: the field has Composit type

--
Adrian Klaver
adrian.klaver@aklaver.com



--
Domenico L.

per stupire mezz'ora basta un libro di storia,
io cercai di imparare la Treccani a memoria... [F.d.A.]