Mysql
 sql >> Datenbank >  >> RDS >> Mysql

NULL-Behandlung in MySQL nach Update-Trigger, der nur bei Datenänderung ausgelöst wird

Sie könnten coalesce() verwenden , das das erste seiner Argumente zurückgibt, das not null ist .

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;

Es kann schwierig sein, das zweite Argument auszuwählen. Das obige Beispiel funktioniert für den allgemeinen Fall, wenn a, b und c Strings sind und wenn ein leerer Stringwert einem null entspricht Wert.