So löschen Sie Datensätze in MySQL automatisch vor einer bestimmten Zeit

So löschen Sie Datensätze in MySQL automatisch vor einer bestimmten Zeit

Über Ereignisse: MySQL 5.1 hat begonnen, das Konzept von Ereignissen einzuführen. Ein Ereignis ist ein „Zeitauslöser“, der sich vom Ereignisauslöser von Auslösern unterscheidet. Ein Ereignis ähnelt der geplanten Linux-Crontab-Aufgabe und wird für die Zeitauslösung verwendet. Durch alleinige Verwendung oder den Aufruf einer gespeicherten Prozedur wird die zugehörige SQL-Anweisung oder gespeicherte Prozedur zu einem bestimmten Zeitpunkt ausgelöst.

Löschen Sie zunächst die vor 2 Tagen aufgezeichneten SQL-Anweisungen (webserver_monitormemory ist der Tabellenname, time ist das Zeitfeld):

Löschen aus webserver_monitormemory, wobei DATE(Uhrzeit) <= DATE(DATE_SUB(NOW(),INTERVAL 2 Tage));

Erstellen Sie eine gespeicherte Prozedur:

TRENNUNGSZEICHEN //
PROZEDUR ERSTELLEN autodel()
  -> BEGIN
  -> löschen aus webserver_monitormemory, wobei DATE(Uhrzeit) <= DATE(DATE_SUB(NOW(),INTERVAL 2 Tage));
  -> ENDE
  -> //
TRENNUNGSZEICHEN ;

Erstellen Sie ein Ereignis und passen Sie die gespeicherte Prozedur an, die Autodel jeden Tag ausführt:

EREIGNIS ERSTELLEN `event_auto_del_memorydata`  
JEDEN TAG PLANMÄSSIG BEGINNT '20.11.2017 00:00:00'  
BEI ABSCHLUSS NICHT BEIBEHALTEN, AKTIVIEREN, AUFRUFEN, autodel();

Es gibt 4 Möglichkeiten den Veranstaltungsplan (Scheduler) zu starten. Der Tastenwert 1 bzw. ON bedeutet „Ein“, 0 bzw. OFF bedeutet „Aus“:

SETZEN SIE GLOBAL event_scheduler = 1; 
SET @@global.event_scheduler = 1; 
Setzen Sie den Event_Scheduler global auf ON. 
SETZEN Sie @@global.event_scheduler = EIN;

Um zu prüfen, ob der Ereignisplan (Scheduler) aktuell aktiviert ist, haben Sie drei Möglichkeiten:

VARIABLEN WIE „event_scheduler“ ANZEIGEN;
Wählen Sie @@event_scheduler;
PROZESSLISTE ANZEIGEN;

Eröffnung und Abschluss der Veranstaltung:

ALTER EVENT event_auto_del_memorydata ON COMPLETION PRESERVE ENABLE; //Ein Ereignis aktivieren ALTER EVENT event_auto_del_memorydata ON COMPLETION PRESERVE DISABLE; //Ein Ereignis deaktivieren

Dies ist das Einfachste, aber auch das Wichtigste. Wir müssen den Timer manuell starten, sonst funktioniert er nicht.

ALTER EVENT event_time_clear_data ON 
ABGESCHLOSSENHEIT BEWAHREN AKTIVIEREN;

Darüber hinaus lautet der Code zum Ausschalten des Timers:

ALTER EVENT event_time_clear_data ON 
ABSCHLUSS BEWAHREN DEAKTIVIEREN;

Löschen Sie die gespeicherte Prozedur:

DROP-VERFAHREN pro_clear_data;

Ereignis löschen:

Ereignis löschen, wenn vorhanden event_time_clear_data1

Zusammenfassen

Oben ist die vom Herausgeber eingeführte Vorgehensweise zum automatischen Löschen von Datensätzen vor einer bestimmten Zeit unter MySQL. Ich hoffe, sie wird allen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Beispiel-Tutorial für geplante MySQL-Aufgaben
  • So implementieren Sie geplante MySQL-Aufgaben unter Linux
  • Verwenden von MySQL unter Windows: Implementieren automatischer zeitgesteuerter Sicherungen
  • Detaillierte Erläuterung der geplanten Ausführungsaufgaben für MySQL-Datenbankereignisse
  • Allgemeiner Hinweis zum MySQL-Ereignisplaner (unbedingt lesen)
  • Detaillierte Erklärung der Verwendung von Ereignissen in MySQL
  • Detaillierte Erläuterung der geplanten MySQL-Aufgaben (Ereignisereignisse)

<<:  Nginx-Proxy-Axios-Anforderung und Vorsichtsmaßnahmen

>>:  So verstehen Sie das Ref-Attribut von React genau

Artikel empfehlen

Beispielcode zum Festlegen des Beschriftungsstils mithilfe des CSS-Selektors

CSS-Selektoren Durch Festlegen des Stils für das ...

Detaillierte Erklärung zum effizienten Importieren mehrerer SQL-Dateien in MySQL

MySQL bietet mehrere Möglichkeiten, mehrere SQL-D...

Lösungen für Probleme bei der Leistungsoptimierung von MySQL-Indizes

Die von MySQL erstellte Optimierung besteht im Hi...

HTML-Multimediaanwendung: Einfügen von Flash-Animationen und Musik in Webseiten

1. Anwendung von Multimedia in HTML_Flash-Animati...

Zwei Möglichkeiten zum korrekten Bereinigen von MySQL-Binlog-Protokollen

mysql bereinigt Binlog-Protokolle korrekt Vorwort...

JS beherrscht schnell die Verwendung von ES6-Klassen

1. Wie konstruieren? Lassen Sie uns die allgemein...

100-1% des Inhalts der Website ist Navigation

Website, (100-1)% des Inhalts ist Navigation 1. J...

Transplantieren des Befehls mkfs.vfat in Busybox unter Linux

Um die Lebensdauer der Festplatte zum Speichern v...

So konfigurieren Sie den Nginx-Lastausgleich

Inhaltsverzeichnis Nginx-Lastausgleichskonfigurat...