Обсуждение: Reg: Firing Trigger when a particular column value get changed
Hi All, 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. Thanks in advance, Thilak .
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
On Sunday 21 September 2003 02:38, you wrote: > 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'; this trigger will not execute "your-stuff-here" if NEW.column or OLD.column will be null. you need to add this case to the logic statement in the "IF" (NEW.column <> OLD.column) OR (NEW.column IS NULL <> OLD.column. IS NULL)