Verwenden Sie dafür
- Mysql-Ereignisse (IMHO der beste Kandidat)
- Cron-Job oder Windows-Taskplaner (wenn Sie sich auf einer Windows-Plattform befinden)
Wenn Sie sich für Option 1 entscheiden, müssen Sie ein Ereignis erstellen
CREATE EVENT myevent
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO
UPDATE myschema.mytable
SET mycol = mycol + 1;
Verwenden Sie SHOW PROCESSLIST
um zu überprüfen, ob der Ereignisplaner aktiviert ist. Wenn es ON
ist Sie sollten einen Prozess "Daemon" von Benutzer "event_scheduler" sehen. Verwenden Sie SET GLOBAL event_scheduler = ON;
um den Planer zu aktivieren, wenn er derzeit nicht aktiviert ist. Mehr zum Konfigurieren des Ereignisplaners hier
.
Wenn Sie Ereignisse sehen möchten, die Sie in Ihrem Schema haben
SHOW EVENTS;
AKTUALISIEREN Ihre Update-Anweisung sollte folgendermaßen aussehen
UPDATE online_auctions
SET auction_status = 'ENDED'
WHERE auction_end_date < NOW();
Hier ist SQLFiddle Demo