sql >> Base de Datos >  >> RDS >> Mysql

Cómo actualizar automáticamente MySQL después de que expire el campo de marca de tiempo

Usar puede usar para eso

  1. Eventos Mysql (En mi humilde opinión, el mejor candidato)
  2. trabajo cron o Programador de tareas de Windows (si está en la plataforma Windows)

Si opta por la opción 1, debe crear un evento

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

Utilice SHOW PROCESSLIST para verificar si el programador de eventos está habilitado. Si está ON debería ver un proceso "Daemon" por el usuario "event_scheduler". Use SET GLOBAL event_scheduler = ON; para habilitar el programador si actualmente no está habilitado. Más información sobre la configuración del programador de eventos aquí .

Si desea ver los eventos que tiene en su esquema

SHOW EVENTS;

ACTUALIZAR Su declaración de actualización debería verse como

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

Aquí está SQLFiddle demostración