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

Come aggiornare automaticamente MySQL dopo la scadenza del campo timestamp

L'uso può essere utilizzato per questo

  1. Eventi MySQL (IMHO il miglior candidato)
  2. cron job o Utilità di pianificazione di Windows (se utilizzi la piattaforma Windows)

Se scegli l'opzione 1 devi creare un evento

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

Usa SHOW PROCESSLIST per verificare se l'agenda eventi è abilitata. Se è ON dovresti vedere un processo "Daemon" dell'utente "event_scheduler". Usa SET GLOBAL event_scheduler = ON; per abilitare lo scheduler se attualmente non è abilitato. Ulteriori informazioni sulla configurazione dell'utilità di pianificazione degli eventi qui .

Se vuoi vedere gli eventi che hai nel tuo schema

SHOW EVENTS;

AGGIORNAMENTO La tua dichiarazione di aggiornamento dovrebbe assomigliare a

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

Ecco SQLFiddle demo