Otherwise, PG triggers work by calling functions that can operate on the "new" and "old" rows. See http://www.postgresql.org/docs/aw_pg.../node166.html. So, you could update the new row to the old, then do whatever else you want. Maybe there is a better way to tell it to skip the update but I'm not aware of one. Again rules are simpler if what you want to do fits what they can do.