Use pode usar para isso
- Eventos do MySQL (IMHO o melhor candidato)
- 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