sql >> Databasteknik >  >> RDS >> Mysql

NULL-hantering i MySQL efter uppdateringsutlösare som endast aktiveras vid dataändring

Du kan använda coalesce() , som returnerar det första av dess argument som är 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;

Det kan vara knepigt att välja det andra argumentet. Ovanstående exempel fungerar för det vanliga fallet när a, b och c är strängar och när ett tomt strängvärde motsvarar en null värde.



  1. behåll textområdets inmatningsformat efter att ha använt mysql_real_escape_string för att lagra

  2. Hur SCHEMA_ID() fungerar i SQL Server

  3. Det bästa sättet att cachelagra json

  4. Behöver jag verkligen använda SET XACT_ABORT ON?