If I create an ON UPDATE trigger run on each row after update, does the trigger fire only on rows affected by the update or for all rows? For example: CREATE TRIGGER my_update_trigger AFTER UPDATE ON my_table FOR EACH ROW EXECUTE PROCEDURE my_update_proc; UPDATE my_table SET my_val = my_val * 2; Will the trigger fire on rows that have NULL for my_val? If so, would this be ok in the trigger proc to generically tell if the row actually changed: -- check if update affected the row IF TG_OP = 'UPDATE' THEN IF OLD = NEW THEN RETURN NULL; END IF; END IF; -- further processing here Or would you have to compare each field in OLD, NEW to see if anything actually changed? Josh ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match