Nie wspomniałeś o swojej wersji PostgreSQL, co jest bardzo ważne przy pisaniu odpowiedzi na takie pytania.
Jeśli używasz PostgreSQL 9.0 lub nowszego (lub masz możliwość uaktualnienia), możesz użyć tego podejścia, jak udokumentował Pavel:
http://okbob.blogspot.com /2009/10/dynamic-access-to-record-fields-in.html
Ogólnie rzecz biorąc, chcesz odwoływać się do pola o dynamicznej nazwie w zmiennej PL/PgSQL typu rekord, takiej jak „NOWY” lub „STARY”. Historycznie było to irytująco trudne i nadal jest niezręczne, ale jest przynajmniej możliwe w wersji 9.0.
Inną alternatywą - która może być prostsza - jest napisanie wyzwalaczy audytu w plperlu, gdzie dynamiczne odwołania do pól są trywialne.