BEFORE UPDATE trigger also fires at insert?

Started by Clemens Eissereralmost 15 years ago2 messagesgeneral
Jump to latest
#1Clemens Eisserer
linuxhippy@gmail.com

Hi,

I've defined a small trigger to increment a field each time the row is updated:

CREATE TRIGGER inc_trigger BEFORE UPDATE ON Table FOR EACH ROW EXECUTE PROCEDURE inc_function();

Works quite well, however the trigger is also fired if the table
itself is modified.
When deleting or inserting a single row, the trigger is executed for
all rows contained in the table.

Is this intetional, and if so, how can I get the behaviour to only
execute the trigger when an update on the relation is performed?

Thank you in advance, Clemens

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Clemens Eisserer (#1)
Re: BEFORE UPDATE trigger also fires at insert?

Clemens Eisserer <linuxhippy@gmail.com> writes:

I've defined a small trigger to increment a field each time the row is updated:

CREATE TRIGGER inc_trigger BEFORE UPDATE ON Table FOR EACH ROW EXECUTE PROCEDURE inc_function();

Works quite well, however the trigger is also fired if the table
itself is modified.
When deleting or inserting a single row, the trigger is executed for
all rows contained in the table.

Is this intetional, and if so, how can I get the behaviour to only
execute the trigger when an update on the relation is performed?

That trigger definition will most certainly only fire on updates.

Are you sure you don't have additional trigger definitions calling the
same function? Or maybe there are some rules on the table that result
in update actions?

regards, tom lane