sql >> Database teknologi >  >> RDS >> Mysql

Sådan automatisk opdateres MySQL efter tidsstempelfeltet er udløbet

Brug kan bruge til det

  1. Mysql-begivenheder (IMHO den bedste kandidat)
  2. cron job eller Windows Task Scheduler (hvis du er på Windows-platformen)

Hvis du vælger mulighed 1, skal du oprette en begivenhed

CREATE EVENT myevent 
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO 
UPDATE myschema.mytable 
   SET mycol = mycol + 1;

Brug SHOW PROCESSLIST for at kontrollere, om begivenhedsplanlægning er aktiveret. Hvis den er ON du skulle se en proces "Daemon" af brugeren "event_scheduler". Brug SET GLOBAL event_scheduler = ON; for at aktivere skemalæggeren, hvis den ikke er aktiveret i øjeblikket. Mere om konfiguration af begivenhedsplanlægning her .

Hvis du vil se begivenheder, som du har i dit skema

SHOW EVENTS;

OPDATERING Din opdateringserklæring skal se sådan ud

UPDATE online_auctions 
   SET auction_status = 'ENDED' 
 WHERE auction_end_date < NOW();

Her er SQLFiddle demo




  1. Tilknytning af en fremmednøgle med et brugerdefineret kolonnenavn

  2. Hvordan kan jeg komme uden om MySQL Errcode 13 med SELECT INTO OUTFILE?

  3. Få en liste over understøttede tidszoner i SQL Server (T-SQL)

  4. Hvordan kalder man en Stored Procedure inde i en oracle-pakke med Entity Framework?