Anda tidak menyebutkan versi PostgreSQL Anda, yang sangat penting saat menulis jawaban atas pertanyaan seperti ini.
Jika Anda menjalankan PostgreSQL 9.0 atau yang lebih baru (atau dapat memutakhirkan), Anda dapat menggunakan pendekatan ini seperti yang didokumentasikan oleh Pavel:
http://okbob.blogspot.com /2009/10/dynamic-access-to-record-fields-in.html
Secara umum, yang Anda inginkan adalah mereferensikan bidang bernama dinamis dalam variabel PL/PgSQL yang diketik catatan seperti 'NEW' atau 'OLD'. Ini secara historis sangat sulit, dan masih canggung tetapi setidaknya mungkin di 9.0.
Alternatif Anda yang lain - yang mungkin lebih sederhana - adalah dengan menulis pemicu audit Anda di plperlu, di mana referensi bidang dinamis tidak penting.