Does anyone know how to write a trigger that would identify which columns
have actually changed in an update (and then log them to an archive).
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';
In other words
- How might you parse, in general, old and new records to compare like
columns?
- How can you find out the primary key of a record?
Thanks, Jack