Did you insert a row into table2? What happens if there is no row in table 1 where id = code (of the newly inserted row in table2). Seems to me you many need to consider expanding increment_value() to check table1 to see if code exists. If not insert a new value, else update. -----Original Message----- From: Ramiro Arenas Ramirez [SMTP:[EMAIL PROTECTED]] Sent: Thursday, February 01, 2001 2:48 PM To: [EMAIL PROTECTED] Subject: how to create this trigger? I need to create a trigger that increment a value in a column of table1 where a row is inserted in table 2 I have tried whit this but it just does nothing. CREATE FUNCTION increment_value () RETURNS opaque AS 'DECLARE code int4; BEGIN code := new.code; UPDATE table1 SET value = value + 1 WHERE id = code; RETURN NEW; END;' LANGUAGE 'plpgsql'; CREATE TRIGGER insert_on_table2 BEFORE INSERT ON table2 FOR EACH ROW EXECUTE PROCEDURE increment_value(); Can you help me?