sql >> Databasteknik >  >> RDS >> Mysql

Hur man AUTO uppdaterar MySQL efter att tidsstämpelfältet har gått ut

Användning kan användas för det

  1. Mysql-händelser (IMHO den bästa kandidaten)
  2. cron-jobb eller Windows Task Scheduler (om du använder Windows-plattformen)

Om du väljer alternativ 1 måste du skapa en händelse

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

Använd SHOW PROCESSLIST för att kontrollera om händelseschemaläggaren är aktiverad. Om den är ON du bör se en process "Daemon" av användaren "event_scheduler". Använd SET GLOBAL event_scheduler = ON; för att aktivera schemaläggaren om den för närvarande inte är aktiverad. Mer om att konfigurera händelseschemaläggaren här .

Om du vill se händelser som du har i ditt schema

SHOW EVENTS;

UPPDATERA Ditt uppdateringsutlåtande bör se ut

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

Här är SQLFiddle demo




  1. Hitta närmaste datetime till specificerad datetime i mysql-frågan

  2. Är det en bra idé att indexera datetime-fältet i mysql?

  3. Hantera felhantering när du kör sqlplus från skalskript

  4. Ändra en postgres containers serverport i Docker Compose