1. Was ist eine Veranstaltung? Seit MySQL Ereignisse werden manchmal auch als temporäre Trigger bezeichnet, da der Ereignisplaner basierend auf einem bestimmten Zeitraum ausgelöst wird, um bestimmte Aufgaben auszuführen, während Trigger basierend auf Ereignissen ausgelöst werden, die von einer bestimmten Tabelle generiert werden. Das ist der Unterschied. 2. Aktivieren Sie die Funktion „Event“Bevor Sie die Funktion „Event“ verwenden, müssen Sie sicherstellen, dass event_scheduler aktiviert ist 1. Prüfen Sie, ob die Funktion aktiviert ist:- Methode 1 SELECT @@event_scheduler; -- Methode 2: VARIABLEN ANZEIGEN WIE „event%“; Wenn „ON“ angezeigt wird, bedeutet dies, dass die Funktion eingeschaltet wurde (siehe unten): mysql> AUSWÄHLEN @@event_scheduler; +---------------------------------+ | @@event_scheduler | +---------------------------------+ | EIN | +---------------------------------+ 1 Zeile im Satz (0,00 Sek.) mysql> VARIABLEN WIE 'event%' ANZEIGEN; +-----------------+--------+ | Variablenname | Wert | +-----------------+--------+ | event_scheduler | EIN | +-----------------+--------+ 1 Zeile im Satz (0,00 Sek.) 2. Funktionsbefehle aktivieren und deaktivieren: -- Funktionsbefehl aktivieren: SETZEN SIE GLOBAL event_scheduler = 1; Setzen Sie den Event_Scheduler global auf ON. -- Funktionsbefehl deaktivieren: SETZEN SIE GLOBAL event_scheduler = 0; SETZEN SIE GLOBAL event_scheduler = OFF; Natürlich wird es automatisch geschlossen, wenn die Datenbank durch Öffnen des Befehls neu gestartet wird.
Häufig verwendete Ereignisoperationsbefehle:
3. Ereignis - SQL-Syntax erstellen Unten sehen Sie die Anweisung zur Erstellung eines EVENT-Ereignisses. Auf den ersten Blick ist sie ziemlich kompliziert. Lassen Sie uns sie aufschlüsseln und interpretieren. EREIGNIS ERSTELLEN [WENN NICHT VORHANDEN] Ereignisname ON SCHEDULE-Zeitplan (Zeitplanungseinstellung) [NACH ABSCHLUSS [NICHT] BEWAHREN] [AKTIVIEREN | DEAKTIVIEREN | AUF SLAVE DEAKTIVIEREN] [KOMMENTAR 'Kommentar'] DO SQL_Anweisung;
Syntax AT-Zeitstempel [+ INTERVAL-Intervall] ... | JEDES Intervall [STARTS Zeitstempel [+ INTERVAL Intervall] ...] [ENDS Zeitstempel [+ INTERVAL Intervall] ...] -- Die in INTERVAL enthaltenen Zeiteinheiten sind wie folgt: {JAHR | QUARTAL | MONAT | TAG | STUNDE | MINUTE | WOCHE | SEKUNDE | JAHR_MONAT | TAG_STUNDE | TAG_MINUTE | TAG_SEKUNDE | STUNDE_MINUTE | STUNDE_SEKUNDE | MINUTE_SEKUNDE} 1. Erstellen - Einzelnes geplantes AusführungsereignisAT TIMESTAMP Zeitzeichenfolge [+ INTERVAL INTERVAL] AT TIMESTAMP bedeutet, dass das Ereignis nur einmal ausgeführt wird. TIMESTAMP stellt einen bestimmten Zeitpunkt dar, auf den ein Zeitintervall folgen kann, um anzuzeigen, dass das Ereignis nach diesem Zeitintervall auftritt. [+ INTERVAL INTERVAL] gibt die Verzögerungsauslösezeit an; Es ist zu beachten, dass TIMESTAMP zusammen mit einer bestimmten Zeichenfolge verwendet wird. Wenn es sich nicht um eine bestimmte Zeichenfolge handelt (z. B. CURRENT_TIMESTAMP, um die aktuelle Zeit abzurufen usw.), wird TIMESTAMP nicht hinzugefügt. Beispiel 1: Fügen Sie eine Datenzeile in die Tabelle demo_1119 ein. Ausführungszeit: 2020-11-20 00:00:00 EREIGNIS ERSTELLEN demo_event2 IM ZEITPLAN ZUM ZEITSTEMPEL '2020-11-20 00:00:00' INSERT INTO `demo_1119` (`id`, `name`, `createTime`) VALUES (null, 'Erstellungszeit', NOW()) Ergebnisabfrage: mysql> wähle * aus demo_1119; +-----+--------------------------+---------------------+ | ID | Name | Erstellungszeit | +-----+--------------------------+---------------------+ | 145 | Chen Haha | 20.11.2020 00:00:00 | +-----+--------------------------+---------------------+ 9 Zeilen im Satz (0,00 Sek.) Beispiel 2: Einfügen einer Datenzeile in die Tabelle demo_1119, Ausführungszeit: 5 Stunden nach der aktuellen Zeit; EREIGNIS ERSTELLEN demo_event2 ZEITPLANMÄSSIG UM CURRENT_TIMESTAMP + INTERVALL 5 STUNDEN INSERT INTO `demo_1119` (`id`, `name`, `createTime`) VALUES (null, 'Erstellungszeit', NOW()) 2. Erstellen - Zeitgesteuertes Ausführungsereignis in SchleifeJEDES INTERVALL [BEGINNT ZEITSTEMPEL] [ENDET ZEITSTEMPEL] Beispiel 1: Von nun an fügen Sie alle 10 Sekunden eine Datenzeile in die Tabelle demo_1119 ein VERANSTALTUNG ERSTELLEN demo_event3 PÜNKTLICH ALLE 10 SEKUNDEN BEI FERTIGSTELLUNG BEWAHREN INSERT INTO `demo_1119` (`id`, `name`, `createTime`) VALUES (null, 'Erstellungszeit', NOW()) mysql> wähle * aus demo_1119; +-----+--------------------------+---------------------+ | ID | Name | Erstellungszeit | +-----+--------------------------+---------------------+ | 145 | Chen Haha | 19.11.2020 11:10:39 | | 146 | Chen Haha | 19.11.2020 11:10:49 | | 147 | Chen Haha | 20.11.2020 11:10:59 | | 148 | Chen Haha | 20.11.2020 11:11:09 | | 149 | Chen Haha | 20.11.2020 11:11:19 | | 150 | Chen Haha | 20.11.2020 11:11:29 | | 151 | Chen Haha | 20.11.2020 11:11:39 | +-----+--------------------------+---------------------+ 9 Zeilen im Satz (0,00 Sek.) Beispiel 2: Ab 20.11.2020 12:00:00 Uhr alle 10 Minuten eine Datenzeile in die Tabelle demo_1119 einfügen VERANSTALTUNG ERSTELLEN demo_event4 FAHRPLANMÄSSIG ALLE 10 MINUTEN BEGINNT '2020-11-20 12:00:00' BEI FERTIGSTELLUNG BEWAHREN INSERT INTO `demo_1119` (`id`, `name`, `createTime`) VALUES (null, 'Erstellungszeit', NOW()) mysql> wähle * aus demo_1119; +-----+--------------------------+---------------------+ | ID | Name | Erstellungszeit | +-----+--------------------------+---------------------+ | 152 | Chen Haha | 20.11.2020 12:00:00 | | 153 | Chen Haha | 20.11.2020 12:10:00 | | 154 | Chen Haha | 20.11.2020 12:20:00 | | 155 | Chen Haha | 20.11.2020 12:30:00 | | 156 | Chen Haha | 20.11.2020 12:40:00 | +-----+--------------------------+---------------------+ 5 Zeilen im Satz (0,00 Sek.) Beispiel 3: Beginnen Sie eine Stunde nach der aktuellen Zeit und fügen Sie alle 10 Minuten eine Datenzeile in die Tabelle demo_1119 ein. Sie wurde getestet und ist verfügbar, daher werde ich keine redundanten Abfragedaten veröffentlichen ~ VERANSTALTUNG ERSTELLEN demo_event5 GEMÄSS ZEITPLAN ALLE 10 MINUTE BEGINNT CURRENT_TIMESTAMP+INTERVALL 1 STUNDE BEI FERTIGSTELLUNG BEWAHREN INSERT INTO `demo_1119` (`id`, `name`, `createTime`) VALUES (null, 'Erstellungszeit', NOW()) Beispiel 4: Beginnen Sie einen Tag ab der aktuellen Zeit, fügen Sie jede Stunde eine Datenzeile in die Tabelle demo_1119 ein und beenden Sie nach drei Tagen VERANSTALTUNG ERSTELLEN demo_event5 JEDE STUNDE GEMÄSS ZEITPLAN BEGINNT CURRENT_TIMESTAMP+INTERVALL 1 TAG ENDET CURRENT_TIMESTAMP+INTERVALL 3 TAGE BEI FERTIGSTELLUNG BEWAHREN INSERT INTO `demo_1119` (`id`, `name`, `createTime`) VALUES (null, 'Erstellungszeit', NOW()) Beispiel 5: Löschen Sie die Daten in der Tabelle demo_1119 jeden Tag um 0:00 Uhr VERANSTALTUNG ERSTELLEN demo_event5 IM ZEITPLAN: JEDEN TAG BEGINNT '2020-11-20 00:00:00' BEI FERTIGSTELLUNG BEWAHREN DO TRUNCATE-Tabelle `demo_1119` 3. Ereignisse ändernDie Anweisung „Modify Event“ ist genau dieselbe wie die Anweisung „Create“. Die Syntax lautet wie folgt: ALTER EVENT Ereignisname [ONSCHEDULE-Zeitplan] [alter_NAME ZU neuer_NAME] [NACH ABSCHLUSS [NICHT] BEWAHREN] [KOMMENTAR 'Kommentar'] [AKTIVIEREN | DEAKTIVIEREN] [DO SQL_Anweisung] Schalten Sie die Ereignisaufgabe aus: ALTER EVENT Ereignisname ON COMPLETION PRESERVE DISABLE; Ereignisaufgabe aktivieren: ALTER EVENT Ereignisname ON COMPLETION PRESERVE ENABLE; 4. Ereignisse löschenDROP EVENT [WENN EXISTIERT] Ereignisname 4. Events – Erstellen mit Navicat (empfohlen)Viele Leute geben gerne SQL-Anweisungen in die Befehlszeile ein, was ihnen ein Gefühl von Professionalität verleiht, aber sie können auch von ihren Vorgesetzten moralisch entführt werden~~ Manche Führungskräfte denken, es sei cool und beeindruckend, wenn ihre Mitarbeiter Google verwenden, aber es sei unerwünscht, Baidu für die Suche nach CSDN zu verwenden. Aber als Neuling verwende ich immer noch gerne mein Navicat-Gadget und Baidu. Okay, ohne weitere Umschweife, schauen wir uns an, wie Navicat EVENT-Ereignisse erstellt, LOS! Klicken Sie wie unten gezeigt mit der rechten Maustaste, um ein neues Ereignis zu erstellen
Natürlich können Sie auch mehrere SQL-Anweisungen gleichzeitig mit Semikolons dazwischen schreiben. Beginnen Sie mit BEGIN und enden Sie mit END. Öffnen Sie die Plan-Spalte. Kommt es Ihnen nicht bekannt vor? Dies haben wir im vorherigen Modul gesehen. Damit unsere Freunde einen tieferen Eindruck bekommen, wollen wir es noch einmal durchgehen. Parameterbeschreibung:
Die in INTERVAL enthaltenen Zeiteinheiten sind wie folgt:
Okay, verwenden wir einige Beispiele, um es einprägsamer zu machen: Beispiel 1: Einfügen einer Datenzeile in die Tabelle demo_1119, Ausführungszeit: 2020-11-20 00:00:00
2: Fügen Sie eine Datenzeile in die Tabelle demo_1119 ein, Ausführungszeit: 5 Stunden nach der aktuellen Zeit; Beispiel 3: Von nun an fügen Sie alle 10 Sekunden eine Datenzeile in die Tabelle demo_1119 ein Beispiel 4: Ab 20.11.2020 12:00:00 Uhr alle 10 Minuten eine Datenzeile in die Tabelle demo_1119 einfügen Beispiel 5: Beginnen Sie eine Stunde nach der aktuellen Zeit und fügen Sie alle 10 Minuten eine Datenzeile in die Tabelle demo_1119 ein. Beispiel 6: Beginnen Sie einen Tag ab der aktuellen Zeit, fügen Sie jede Stunde eine Datenzeile in die Tabelle demo_1119 ein und beenden Sie nach drei Tagen Beispiel 7: Löschen Sie die Daten in der Tabelle demo_1119 jeden Tag um 0:00 Uhr Dies ist das Ende dieses Artikels zum Konfigurieren von geplanten MySQL-Aufgaben (EVENT-Ereignisse). Weitere relevante geplante MySQL-Aufgaben finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: W3C Tutorial (6): W3C CSS Aktivitäten
Informationen zu CSS3-Variablen Fügen Sie beim De...
1. Nachfrage Ein Bild bewegt sich in einer Endlos...
Vorwort: In manchen Anwendungsszenarien stoßen wi...
Inhaltsverzeichnis 1. Erstellen Sie einen Socket ...
Befehl: mysqlhotcopy Dieser Befehl sperrt die Tab...
Inhaltsverzeichnis Betriebswirtschaftlicher Hinte...
<br />Mit der zunehmenden Bandbreite werden ...
Inhaltsverzeichnis 1. Routing-Animation 2. Gruppe...
1. Überprüfen Sie den Firewall-Status Überprüfen ...
Inhaltsverzeichnis 1. Was ist scrapy_splash? 2. D...
In diesem Artikelbeispiel wird der spezifische Co...
Die ultimative Methode zur Lösung des Ajax-Parser...
Inhaltsverzeichnis 10.000 Daten gingen im Hinterg...
Inhaltsverzeichnis 1. Materialien vorbereiten 2. ...
0x00 Einführung Vor einigen Monaten habe ich eine...