Thread: How can I write trigger on a columns insert/update?

How can I write trigger on a columns insert/update?

From
"Dinesh Pandey"
Date:

How can I write trigger on a columns insert/update?

 

 

CREATE TRIGGER mytrigger

BEFORE

INSERT OR UPDATE

          OF mycolumn ON mytable

FOR EACH ROW

          EXECUTE PROCEDURE myfunction();

 

I am getting error “syntax error at or near "OF"

 

Thanks

 

Re: How can I write trigger on a columns insert/update?

From
Richard Huxton
Date:
Dinesh Pandey wrote:
> How can I write trigger on a columns insert/update?
>
> CREATE TRIGGER mytrigger
> BEFORE
> INSERT OR UPDATE
>           OF mycolumn ON mytable

You don't I'm afraid. It's not a feature that's supported yet. You have
to check which column(s) were changed in your functions.

It is on the TODO list though:
   http://www.postgresql.org/docs/faqs.TODO.html

--
   Richard Huxton
   Archonet Ltd

Re: How can I write trigger on a columns insert/update?

From
Robert Treat
Date:
On Thu, 2005-05-19 at 04:35, Richard Huxton wrote:
> Dinesh Pandey wrote:
> > How can I write trigger on a columns insert/update?
> >
> > CREATE TRIGGER mytrigger
> > BEFORE
> > INSERT OR UPDATE
> >           OF mycolumn ON mytable
>
> You don't I'm afraid. It's not a feature that's supported yet. You have
> to check which column(s) were changed in your functions.
>
> It is on the TODO list though:
>    http://www.postgresql.org/docs/faqs.TODO.html
>

Just to add there is someone working on this for 8.1, hopefully it will
get done. Also the workaround is to create a regular trigger and then do
a check in the function

IF NEW.mycol <> OLD.mycol THEN... it's not quite as spiff but should do
what you want.


Robert Treat
--
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL