Mysql
 sql >> Base de données >  >> RDS >> Mysql

Gestion NULL dans MySQL après un déclencheur de mise à jour qui ne se déclenche qu'en cas de changement de données

Vous pouvez utiliser coalesce() , qui renvoie le premier de ses arguments qui est 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;

Il peut être difficile de choisir le deuxième argument. L'exemple ci-dessus fonctionne pour le cas courant où a, b et c sont des chaînes et lorsqu'une valeur de chaîne vide équivaut à un null valeur.