Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como atualizar automaticamente o MySQL após a expiração do campo de carimbo de data/hora


Use pode usar para isso
  1. Eventos do MySQL (IMHO o melhor candidato)
  2. cron job ou Windows Task Scheduler (se você estiver na plataforma Windows)

Se você for com a opção 1, você precisa criar um evento
CREATE EVENT myevent 
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO 
UPDATE myschema.mytable 
   SET mycol = mycol + 1;

Use SHOW PROCESSLIST para verificar se o agendador de eventos está ativado. Se estiver ON você deve ver um processo "Daemon" pelo usuário "event_scheduler". Use SET GLOBAL event_scheduler = ON; para habilitar o agendador se ele não estiver habilitado no momento. Mais sobre como configurar o agendador de eventos aqui .

Se você quiser ver os eventos que você tem em seu esquema
SHOW EVENTS;

ATUALIZAÇÃO Sua declaração de atualização deve se parecer com
UPDATE online_auctions 
   SET auction_status = 'ENDED' 
 WHERE auction_end_date < NOW();

Aqui está SQLFiddle demonstração