Podrías usar coalesce()
, que devuelve el primero de sus argumentos que es not null
.
if coalesce(old.a,'') <> coalesce(new.a,'') or
coalesce(old.b,'') <> coalesce(new.b,'') or
coalesce(old.c,'') <> coalesce(new.c,'')
then
insert ...;
end if;
Puede ser complicado elegir el segundo argumento. El ejemplo anterior funciona para el caso común cuando a, b y c son cadenas y cuando un valor de cadena vacío es equivalente a un null
valor.