Heim >Datenbank >MySQL-Tutorial >Wie lösche ich MySQL-Datensätze nach sieben Tagen automatisch?
In diesem Beitrag gehen wir auf das Problem ein, Datensätze aus einer MySQL-Datenbank nach einem bestimmten Zeitintervall zu löschen.
Problem:
Nachrichten in einer MySQL-Tabelle mit „id“, „message“ und „Datum“-Spalten müssen nach sieben Tagen gelöscht werden. Datumsangaben werden im Format „JJJJ-MM-TT HH:MM:SS“ angegeben. Es wird vorgeschlagen, für diesen Löschvorgang ein MySQL-Ereignis anstelle eines Cron-Jobs zu verwenden.
Abfrage:
Die folgende Abfrage enthält eine überarbeitete Bedingung zum Löschen von Nachrichten, die älter als 7 sind Tage:
CREATE EVENT delete_event ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY ON COMPLETION PRESERVE DO BEGIN DELETE messages WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY); END;
Klärung:
Statt der Verwendung Für die in der Frage vorgeschlagene Bedingung („DELETE messages WHERE date >= (das aktuelle Datum – 7 Tage)“) verwenden wir „WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY)“. Dadurch wird sichergestellt, dass Nachrichten, die genau 7 Tage alt sind, gelöscht werden, während die vorherige Bedingung sie nicht löschen würde.
Empfehlung:
Hierfür können zwar MySQL-Events verwendet werden Zu diesem Zweck ist auch die Verwendung eines einfachen Cron-Skripts eine gültige Option. Es bietet eine einfachere Wartung, vermeidet komplexe SQL-Problemumgehungen und lässt sich nahtlos in das System integrieren.
Das obige ist der detaillierte Inhalt vonWie lösche ich MySQL-Datensätze nach sieben Tagen automatisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!