X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [64.117.224.130]) by svr1.postgresql.org (Postfix) with ESMTP id EDA9ED1B54D for ; Sun, 21 Sep 2003 06:31:05 +0000 (GMT) Received: from svr1.postgresql.org ([64.117.224.193]) by localhost (neptune.hub.org [64.117.224.130]) (amavisd-new, port 10024) with ESMTP id 23296-03 for ; Sun, 21 Sep 2003 03:30:56 -0300 (ADT) Received: from news.hub.org (unknown [64.117.224.194]) by svr1.postgresql.org (Postfix) with ESMTP id 3B68DD1B54F for ; Sun, 21 Sep 2003 03:30:54 -0300 (ADT) Received: from news.hub.org (host-64-117-224-194.altec1.com [64.117.224.194] (may be forged)) by news.hub.org (8.12.9/8.12.9) with ESMTP id h8L6UjhM036819 for ; Sun, 21 Sep 2003 06:30:45 GMT (envelope-from news@news.hub.org) Received: (from news@localhost) by news.hub.org (8.12.9/8.12.9/Submit) id h8L6A4vr034732 for pgsql-sql@postgresql.org; Sun, 21 Sep 2003 06:10:04 GMT Message-ID: <3F6CD6E9.5030005@houle.org> Date: Sat, 20 Sep 2003 18:38:33 -0400 From: Kevin Houle User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 X-Newsgroups: comp.databases.postgresql.sql To: Thilak babu Subject: Re: Reg: Firing Trigger when a particular column value get changed References: <63970.192.168.64.193.1063969270.squirrel@mail2.siptech.co.in> In-Reply-To: <63970.192.168.64.193.1063969270.squirrel@mail2.siptech.co.in> X-Enigmail-Version: 0.76.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Lines: 27 To: pgsql-sql@postgresql.org X-Virus-Scanned: by amavisd-new at postgresql.org X-Archive-Number: 200309/235 X-Sequence-Number: 15213 Thilak babu wrote: > I have a scnerio as to fire a trigger when i update a particular column > in a table. Please do help me out in getting thro this. The trigger function can use logic to exclude cases where a particular column does not change. For example: CREATE FUNCTION "column_update" () RETURNS TRIGGER AS ' BEGIN IF ( NEW.column <> OLD.column ) THEN do-your-stuff-here; END IF; RETURN NEW; END; ' LANGUAGE 'plpgsql'; CREATE TRIGGER "tg_column_update" BEFORE UPDATE ON "table_name" FOR EACH ROW EXECUTE PROCEDURE "column_update" (); The trigger fires on every update, but the procedure doesn't do anything unless the particular column changes. I don't think a trigger can be defined to fire on anything more granular than a table operation. Kevin