Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment mettre à jour AUTOMATIQUEMENT MySQL après l'expiration du champ d'horodatage

Utilisez peut utiliser pour cela

  1. Événements MySQL (IMHO le meilleur candidat)
  2. tâche cron ou planificateur de tâches Windows (si vous êtes sur la plate-forme Windows)

Si vous optez pour l'option 1, vous devez créer un événement

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

Utilisez SHOW PROCESSLIST pour vérifier si le planificateur d'événements est activé. Si c'est ON vous devriez voir un processus "Daemon" par l'utilisateur "event_scheduler". Utilisez SET GLOBAL event_scheduler = ON; pour activer le planificateur s'il n'est pas activé actuellement. Plus d'informations sur la configuration du planificateur d'événements ici .

Si vous voulez voir les événements que vous avez dans votre schéma

SHOW EVENTS;

MISE À JOUR Votre déclaration de mise à jour devrait ressembler à

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

Voici SQLFiddle démo