Um folgende Ziele zu erreichen: Die MySQL-Datenbank beurteilt eine Tabelle in einer Bibliothek in regelmäßigen Abständen (dies kann alle 2 Stunden oder alle 24 Stunden erfolgen, dies kann angepasst werden). Wenn die Daten in dieser Tabelle 20 Datensätze überschreiten (diese Daten werden ebenfalls angepasst, es können auch 200 Datensätze sein), werden die letzten 10 Datensätze beibehalten (diese Daten können ebenfalls angepasst werden, müssen jedoch kleiner oder gleich der vorherigen Anzahl von Datensätzen sein). Lassen Sie mich kurz auf die Lösung eingehen (von hinten nach vorne abgeleitet): 1. Starten Sie einen Timer, der zwei Dinge tut: ⑴Stellen Sie das Zeitintervall ein ⑵Rufen Sie eine gespeicherte Prozedur auf 2. Schreiben Sie eine gespeicherte Prozedur, die zwei Dinge tut: ⑴ Bestimmen Sie, ob die Anzahl der Dateneinträge in der Tabelle 20 überschreitet. Wenn sie 20 überschreitet, führen Sie die folgenden Schritte aus. ⑵ Behalten Sie die letzten 10 Daten und löschen Sie den Rest der alten Daten. Dies erfordert, dass die Tabelle eine zunehmende Primärschlüssel-ID haben muss, sodass der Wert der neuesten Daten-ID größer ist. Suchen Sie einfach die größte ID in der aktuellen Tabelle und subtrahieren Sie 10, um einen „Löschknoten“ zu erhalten. Schreiben Sie dann „where ID < „Löschknoten““ in die Löschanweisung. Auch wenn das Ergebnis möglicherweise nicht genau ist, kann der Effekt in etwa erreicht werden. Angenommen, es gibt eine Datentabelle mit einer Primärschlüssel-ID, die erhöht wird. Die Daten in dieser Tabelle werden weiter zunehmen. Jetzt müssen wir alle 5 Sekunden die neuesten 10 Daten in der Datentabelle behalten und die anderen löschen. Der Code-Prozess ist wie folgt: 1. Definieren Sie zunächst eine gespeicherte Prozedur mit dem Namen pro_clear_data. Beachten Sie, dass der vertikale Strich („|“) nicht fehlen darf. TRENNUNGSZEICHEN | DROP-VERFAHREN, WENN PRO_CLEAR_DATA VORHANDEN IST | PROZEDUR ERSTELLEN pro_clear_data() BEGINNEN SET @datas_count=(SELECTCOUNT(id) FROM Daten); WENN(@datas_count>20) DANN SET @max_id=(SELECT MAX(id) FROM Daten); SET @max_id = @max_id - 10; LÖSCHEN AUS `datas`, WO id<@max_id; ENDE, WENN; ENDE | 2. Erstellen Sie einen Timer mit dem Namen event_time_clear_data SETZEN SIE GLOBAL event_scheduler = 1; EREIGNIS ERSTELLEN, WENN NICHT VORHANDEN event_time_clear_data PER PLAN ALLE 5 SEKUNDEN BEI FERTIGSTELLUNG BEWAHREN Rufen Sie pro_clear_data() auf; 3. 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; Erstellen Sie gespeicherte Prozeduren und Timercodes separat. Die Daten werden alle 5 Sekunden automatisch gelöscht und die letzten 10 Datensätze bleiben erhalten. Darüber hinaus lautet der Code zum Ausschalten des Timers: ALTER EVENT event_time_clear_data ON ABSCHLUSS BEWAHREN DEAKTIVIEREN; Der Code zum Löschen der gespeicherten Prozedur lautet: DROP-VERFAHREN pro_clear_data; Über die Veranstaltung: In MySQL Version 5.1 wurde mit der Einführung des Ereigniskonzepts begonnen. 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. Ereignis löschen: Ereignis löschen, wenn vorhanden event_time_clear_data1 Dies ist das Ende dieses Artikels über die Implementierung von MySQL, um alte Daten in einer Tabelle regelmäßig zu löschen und mehrere Datenstücke beizubehalten. Weitere relevante Inhalte zur regelmäßigen Datenlöschung von MySQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Einige Parameterbeschreibungen von Texteingabefeldern im Webdesign
>>: Eine kurze Diskussion zum Verständnis von TypeScript-Indexsignaturen
In Bezug auf das leistungsstarke verteilte Speich...
In diesem Artikel finden Sie das Tutorial zur Ins...
Vorteile von Prepare Der Grund, warum Prepare SQL...
Einzigartige „Über“-Seiten Eine gute Möglichkeit, ...
Konfigurieren des Alibaba Cloud Docker Container ...
Inhaltsverzeichnis Manuelle Sicherung Timer-Siche...
Durch Hinzufügen des Schlüsselworts extra_hosts i...
Vorwort Ich arbeite derzeit an der Datenanalysepl...
In einer ungeordneten Liste ul>li ist das Symb...
Serverinformationen Verwaltungsserver: m01 172.16...
In diesem Artikelbeispiel wird der spezifische Co...
1. Umwelt: MySQL-5.0.41-win32 Windows XP Professi...
Inhaltsverzeichnis 1 Einführung in nginx 1 Was is...
Inhaltsverzeichnis 1. Nutzung 1. Grundlegende Ver...
Inhaltsverzeichnis 1. Was ist Lazy Loading? 2. Im...