Comment md5 toutes les colonnes indépendamment du type

Je voudrais créer une requête sql (ou plpgsql) qui md5() tous les lignes indépendamment de leur type. Cependant, ci-dessous, si l'on est null, la valeur de hachage est nulle:

UPDATE thetable 
    SET hash = md5(accountid || accounttype || createdby || editedby);

Je suis plus tard à l'aide de la table de hachage pour comparer l'unicité null hachage ne fonctionne pas pour ce cas d'utilisation.

Le problème était la façon dont il gère la concaténation des valeurs null. Par exemple:

thedatabase=# SELECT accountid || accounttype || createdby  || editedby 
                 FROM thetable LIMIT 5;  

1Type113225  
<NULL>
2Type11751222 
3Type10651010 
4Type10651

Je pourrais utiliser fusionner ou de l'AFFAIRE états si je savais que le type; cependant, j'ai beaucoup de tables et je sais pas le type de l'avance de chaque colonne.

OriginalL'auteur brianray | 2013-01-29