Re: Updating - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Updating
Date
Msg-id 200803161827.36449.aklaver@comcast.net
Whole thread Raw
In response to Re: Updating  (Bob Pawley <rjpawley@shaw.ca>)
Responses Re: Updating
List pgsql-general
On Sunday 16 March 2008 5:36 pm, Bob Pawley wrote:
> Would it be possible to get an example of such coding??
>
> Bob
>
>
> ----- Original Message -----
> From: "Adrian Klaver" <aklaver@comcast.net>
> To: <pgsql-general@postgresql.org>
> Cc: "Bob Pawley" <rjpawley@shaw.ca>
> Sent: Sunday, March 16, 2008 5:14 PM
> Subject: Re: [GENERAL] Updating
>
> > On Sunday 16 March 2008 3:32 pm, Bob Pawley wrote:
> >> Is there a method available for triggering a function after an update on
> >> a
> >> particular column in a table?
> >>
> >> The only way that I have found is to trigger after an update on the
> >> whole table, which of course can lead to problems.
> >>
> >> Bob
> >
> > I trigger can be constrained to fire for each row. Inside the trigger
> > function
> > you can test to see if the column in question has been updated and do the
> > appropriate thing. If the column has not been changed do nothing and
> > RETURN
> > NEW which makes the function non-op.
> > --
> > Adrian Klaver
> > aklaver@comcast.net
> >
> > --
> > Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> > To make changes to your subscription:
> > http://www.postgresql.org/mailpref/pgsql-general


CREATE FUNCTION foo() RETURNS trigger AS
$Body$
    BEGIN
       IF NEW.colname != OLD.colname  THEN
            ..."Do something"..;
        RETURN whatever;
    ELSE
        RETURN NEW:
        END IF;
    END;
$Body$ LANGUAGE plpgsql;

CREATE TRIGGER foo_test BEFORE UPDATE ON foo_table FOR EACH ROW EXECUTE
PROCEDURE foo();
--
Adrian Klaver
aklaver@comcast.net

pgsql-general by date:

Previous
From: Bob Pawley
Date:
Subject: Re: Updating
Next
From: "Harvey, Allan AC"
Date:
Subject: Re: Updating