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

JavaScript implementiert die asynchrone Erfassung von Formulardaten

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Einführung in Robots.txt

Grundlegende Einführung in robots.txt Robots.txt i...

Informieren Sie sich, wie HTML und Ressourcen geladen werden

Der gesamte Inhalt dieses Blogs ist unter Creativ...

So verwenden Sie nginx, um eine angegebene Schnittstelle (URL) zu blockieren

1. Einleitung Manchmal müssen Sie eine Servicesch...

Detaillierte Analyse der MySQL-Optimierung von like und = Leistung

Einführung Die meisten Leute, die schon einmal Da...

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

Über Ereignisse: MySQL 5.1 hat begonnen, das Konz...

Tutorial zur Installation von MySQL 5.7.9 mit RPM-Paket unter CentOS 7

Aufgezeichnetes MySQL 5.7.9-Installationstutorial...

Mysql setzt Boolesche Typoperationen

Mysql legt den Booleschen Typ fest 1. Tinyint-Typ...

Beispiel für automatischen Stoppeffekt nach Text-Scrollen

Die Wirkung ist ganz einfach: Kopieren Sie einfach...

Beispielcode zum Installieren der ASPNET.Core3.0-Runtime unter Linux

# Die folgenden Beispiele gelten für die x64-Bit-...

Implementierung der Vue-Anmeldefunktion

Inhaltsverzeichnis Vorne geschrieben Anmeldeübers...