Heim >Datenbank >MySQL-Tutorial >Wie lösche ich MySQL-Datensätze nach sieben Tagen automatisch?

Wie lösche ich MySQL-Datensätze nach sieben Tagen automatisch?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-27 14:17:11713Durchsuche

How to Automatically Delete MySQL Records After Seven Days?

Löschen von MySQL-Datensätzen nach einer bestimmten Zeitspanne

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn