sql >> Databasteknik >  >> RDS >> Mysql

uppdatera kolumnvärdet efter infogning och tidsperiod

Detta är förmodligen inte rätt tillvägagångssätt. Jag menar, du kan ställa in en händelse som bearbetas för varje rad, men som kan lägga en hel del belastning på din databas.

Istället om status säger bara att raden är mindre eller mer än en dag gammal, ange ett datum för skapande i tabellen och använd en vy:

create view v_table as
     select t.*, (creation_date >= date_sub(now(), interval 1 day) as status
     from table t;

Om status kan ändras på andra sätt, kalla det sedan något i stil med _status och gör:

create view v_table as
     select t.*,
            (case when creation_date >= date_sub(now(), interval 1 day then 1 else _status end) as status
     from table t;



  1. Användning av större än eller lika med (>=) och mindre än eller lika med (<=) i SQL SELECT-satser och PDO

  2. Oracle 11g SKAPA VY med CONNECT BY och flera tabeller

  3. Hur ger jag varje registrerad användare sin egen url med PHP?

  4. Mysql-fråga WHERE-kolumnen finns i json-arrayen