Dear Jack ,

I suspect that the function would look something like;

CREATE FUNCTION FIND_CHANGED_COLUMNS() RETURNS OPAQUE AS '
BEGIN

  -- FOR EACH COLUMN IN THE RECORD:
     -- IF ( NEW COLUMNx <> OLD COLUMNx)
        -- LOG THE RECORD PRIMARY KEY, COLUMN NAME, OLD VALUE

RETURN NEW;
END;
' LANGUAGE 'plpgsql';



Instead of using a trigger use a rule as <code>


</code>
CREATE RULE log_allthat AS ON UPDATE TO table_to_scan WHERE ((NEW.coloum_1 != old.NEW.coloum_1) OR (NEW.coloum_2 != old.NEW.coloum_2)) OR (MORE COLUMNS DO


INSERT INTO log_changes_table (

PRIMARY_KEY,COLUMN_NAME,OLD_VALUE

) VALUES (

OLD.PRIMARY_KEY,OLD.COLUMN_NAME,OLD.OLD_VALUE

);


Yes you will have to create a table as log_changes_table or any name you fancy such that data could be loged
</code>


Kindly shoot back if this helps.

--
Regards,
Vishal Kashyap

~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*
I Know you believe my words so logon to Jabber.org
and add [EMAIL PROTECTED] to your roster.
~*~*~*~*~*~*~*~*
I am usually called by the name Vishal Kashyap
but my Girl friend believes my name should be
Vishal CASH UP.This is because others love my
nature and my Girl friend loves my CASH.
~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*


---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match

Reply via email to