Hi, I am trying to create a simple trigger which inserts a couple of fields into a table, when data in inserted into another table. I have two tables, 'addressbook' and 'phonebook'. When I insert data into the addressbook (whose fields are name, address1, address2, address3, phonenum), I want it to add 'name' and 'phonenum' field values into 'phonebook' table. The following is the trigger i wrote for the above.. ---- Begin of Code --- DROP TRIGGER phonebook on addressbook; CREATE OR REPLACE FUNCTION add_to_phonebook() RETURNS TRIGGER AS $phonebook$ DECLARE new_name varchar; new_phone varchar; BEGIN IF(TG_OP='INSERT') THEN INSERT INTO phonebook(name,phonenum) VALUES(NEW.name,NEW.phonenum); END IF; RETURN NEW; END; $phonebook$ LANGUAGE plpgsql; CREATE TRIGGER phonebook AFTER INSERT ON addressbook FOR EACH ROW EXECUTE PROCEDURE add_to_phonebook(); ----- End of code --- I created the two tables as follows 'addressbook' id serial | name varchar(100) | address1 varchar(100) | address2 varchar(100) | address3 varchar(100) | phonenum varchar(15) 'phonebook' id serial | name varchar(100) | phonenum varchar(100) Now, when I try to insert data into the addressbook and the trigger runs, I get into an ever ending process accompanied by following in my terminal where I run it: ""SQL statement "INSERT INTO phonebook(name,phonenum) VALUES( $1 , $2 )" PL/pgSQL function "add_to_phonebook" line 7 at SQL statement"" When this happens, my processor runs at 100% and when I press Ctrl+C, it continues for few seconds and I get my terminal gets filled with the above stated message. Also that, the original 'insert into' operation over the 'addressbook' table doesn't happen. Where am I wrong in the trigger function ? -- With Regards Parthan (TechnoFreak) . A Proud GNU/Linux User and Ubuntero .0. ..0 [Web] https://wiki.ubuntu.com/Parthan 000 [Blog]http://technofreakatchennai.wordpress.com