In diesem Artikel werden anhand von Beispielen die Vorgänge zum Ändern von MySQL-Ereignissen (ALTER EVENT), Deaktivieren von Ereignissen (DISABLE), Aktivieren von Ereignissen (ENABLE), Umbenennen von Ereignissen und Migrieren von Datenbankereignissen beschrieben. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: Wir müssen wissen, dass MySQL es uns ermöglicht, verschiedene Eigenschaften bestehender Ereignisse zu ändern. Wenn wir ein bestehendes Ereignis ändern möchten, können wir die Anweisung ALTER EVENT wie folgt verwenden: ALTER EVENT Ereignisname IM ZEITPLAN Zeitplan BEI FERTIGSTELLUNG [NICHT] BEWAHREN UMBENENNEN IN neuer_Ereignisname AKTIVIEREN | DEAKTIVIEREN TUN Ereignistext Die Anweisung ALTER EVENT funktioniert nur bei vorhandenen Ereignissen. Wenn wir versuchen, ein Ereignis zu ändern, das nicht existiert, gibt MySQL eine Fehlermeldung aus. Bevor wir also ein Ereignis ändern, sollten wir zunächst die Existenz des Ereignisses mit der Anweisung SHOW EVENTS überprüfen: mysql> EREIGNISSE AUS testdb ANZEIGEN; +--------+--------------+----------------+-----------+----------+---------------------+----------------+----------------+--------+------+----------+------------+----------------------+----------------------+--------------------+ | Db | Name | Definierer | Zeitzone | Typ | Ausführen am | Intervallwert | Intervallfeld | Beginnt | Endet | Status | Urheber | character_set_client | collation_connection | Datenbanksortierung | +--------+--------------+----------------+-----------+----------+---------------------+----------------+----------------+--------+------+----------+------------+----------------------+----------------------+--------------------+ | testdb | test_event_02 | root@localhost | SYSTEM | EINMAL | 03.08.2017 04:24:48 | NULL | NULL | NULL | NULL | DEAKTIVIERT | 0 | utf8 | utf8_general_ci | utf8_general_ci | +--------+--------------+----------------+-----------+----------+---------------------+----------------+----------------+--------+------+----------+------------+----------------------+----------------------+--------------------+ 1 Reihe im Set Erstellen Sie ein Beispielereignis, das jede Minute einen neuen Datensatz in die Nachrichtentabelle einfügt, um zu demonstrieren, wie die verschiedenen Funktionen der ALTER EVENT-Anweisung verwendet werden: VERWENDEN Sie testdb; EREIGNIS ERSTELLEN test_event_04 PER ZEITPLAN JEDE MINUTE TUN INSERT INTO Nachrichten(Nachricht, erstellt am) VALUES('ALTER EVENT-Anweisung testen',NOW()); Ändern wir das Ereignis so, dass es alle 2 Minuten ausgeführt wird: ALTER EVENT test_event_04 FAHRPLANMÄSSIG ALLE 2 MINUTEN; Wir können auch den Hauptteil des Ereignisses ändern, indem wir eine neue Logik angeben: ALTER EVENT test_event_04 TUN INSERT INTO Nachrichten(Nachricht, erstellt am) VALUES('Nachricht vom Ereignis',NOW()); - Löschen Sie die Daten in der Tabelle und kürzen Sie die Nachrichten. Nachdem die Änderung abgeschlossen ist, können Sie 2 Minuten warten und die Nachrichtentabelle erneut anzeigen: mysql> SELECT * FROM Nachrichten; +----+--------------------+---------------------+ | ID | Nachricht | erstellt am | +----+--------------------+---------------------+ | 1 | Nachricht vom Event | 03.08.2017 04:46:47 | | 2 | Nachricht vom Event | 03.08.2017 04:48:47 | +----+--------------------+---------------------+ 2 Reihen im Set Wir können ein Ereignis deaktivieren, indem wir das Schlüsselwort DISABLE nach der ALTER EVENT-Anweisung verwenden: ALTER EVENT test_event_04 DEAKTIVIEREN; Wir können den Status von Ereignissen auch mithilfe der Anweisung SHOW EVENTS anzeigen: mysql> EREIGNISSE AUS testdb ANZEIGEN; +--------+--------------+----------------+-----------+--------------+---------------------+----------------+-----------------+------+---------+------------+----------------------+---------------------+ | Db | Name | Definierer | Zeitzone | Typ | Ausführen am | Intervallwert | Intervallfeld | Beginnt | Endet | Status | Urheber | character_set_client | collation_connection | Datenbanksortierung | +--------+--------------+----------------+-----------+--------------+---------------------+----------------+-----------------+------+---------+------------+----------------------+---------------------+ | testdb | test_event_02 | root@localhost | SYSTEM | EINMAL | 03.08.2017 04:24:48 | NULL | NULL | NULL | NULL | DEAKTIVIERT | 0 | utf8 | utf8_general_ci | utf8_general_ci | | testdb | test_event_04 | root@localhost | SYSTEM | WIEDERHOLEND | NULL | 2 | MINUTE | 03.08.2017 04:44:47 | NULL | DEAKTIVIERT | 0 | utf8 | utf8_general_ci | utf8_general_ci | +--------+--------------+----------------+-----------+--------------+---------------------+----------------+-----------------+------+---------+------------+----------------------+---------------------+ 2 Reihen im Set Wir können ein Ereignis aktivieren, indem wir das Schlüsselwort ENABLE nach der Anweisung ALTER EVENT verwenden: ALTER EVENT test_event_04 AKTIVIEREN; Überprüfen Sie den Ereignisstatus: mysql> EREIGNISSE AUS testdb ANZEIGEN; +--------+--------------+----------------+-----------+--------------+---------------------+----------------+-----------------+------+---------+------------+----------------------+---------------------+ | Db | Name | Definierer | Zeitzone | Typ | Ausführen am | Intervallwert | Intervallfeld | Beginnt | Endet | Status | Urheber | character_set_client | collation_connection | Datenbanksortierung | +--------+--------------+----------------+-----------+--------------+---------------------+----------------+-----------------+------+---------+------------+----------------------+---------------------+ | testdb | test_event_02 | root@localhost | SYSTEM | EINMAL | 03.08.2017 04:24:48 | NULL | NULL | NULL | NULL | DEAKTIVIERT | 0 | utf8 | utf8_general_ci | utf8_general_ci | | testdb | test_event_04 | root@localhost | SYSTEM | WIEDERHOLEND | NULL | 2 | MINUTE | 03.08.2017 04:44:47 | NULL | AKTIVIERT | 0 | utf8 | utf8_general_ci | utf8_general_ci | +--------+--------------+----------------+-----------+--------------+---------------------+----------------+-----------------+------+---------+------------+----------------------+---------------------+ 2 Reihen im Set Versuchen wir, ein bestehendes Ereignis mit ALTER EVENT umzubenennen: ALTER EVENT test_event_04 UMBENENNEN IN test_event_05; So zeigen Sie den Ereignisstatus an: mysql> EREIGNISSE AUS testdb ANZEIGEN; +--------+--------------+----------------+-----------+--------------+---------------------+----------------+-----------------+------+---------+------------+----------------------+---------------------+ | Db | Name | Definierer | Zeitzone | Typ | Ausführen am | Intervallwert | Intervallfeld | Beginnt | Endet | Status | Urheber | character_set_client | collation_connection | Datenbanksortierung | +--------+--------------+----------------+-----------+--------------+---------------------+----------------+-----------------+------+---------+------------+----------------------+---------------------+ | testdb | test_event_02 | root@localhost | SYSTEM | EINMAL | 03.08.2017 04:24:48 | NULL | NULL | NULL | NULL | DEAKTIVIERT | 0 | utf8 | utf8_general_ci | utf8_general_ci | | testdb | test_event_05 | root@localhost | SYSTEM | WIEDERHOLEND | NULL | 2 | MINUTE | 03.08.2017 04:44:47 | NULL | AKTIVIERT | 0 | utf8 | utf8_general_ci | utf8_general_ci | +--------+--------------+----------------+-----------+--------------+---------------------+----------------+-----------------+------+---------+------------+----------------------+---------------------+ 2 Reihen im Set Sie können dann Ereignisse von einer Datenbank in eine andere verschieben, indem Sie die Klausel RENAME TO verwenden: ALTER EVENT testdb.test_event_05 UMBENENNEN IN newdb.test_event_05; Lassen Sie uns den Ereignisstatus überprüfen: mysql> EREIGNISSE AUS newdb ANZEIGEN; +----------+--------------+----------------+-----------+---------------+------------+----------------+-----------------+---------------------+------+---------+------------+----------------------+--------------------+ | Db | Name | Definierer | Zeitzone | Typ | Ausführen am | Intervallwert | Intervallfeld | Beginnt | Endet | Status | Urheber | character_set_client | collation_connection | Datenbanksortierung | +----------+--------------+----------------+-----------+---------------+------------+----------------+-----------------+---------------------+------+---------+------------+----------------------+--------------------+ | newdb | test_event_05 | root@localhost | SYSTEM | WIEDERHOLEND | NULL | 2 | MINUTE | 03.08.2017 04:44:47 | NULL | AKTIVIERT | 0 | utf8 | utf8_general_ci | utf8_general_ci | +----------+--------------+----------------+-----------+---------------+------------+----------------+-----------------+---------------------+------+---------+------------+----------------------+--------------------+ 1 Reihe im Set Okay, das ist alles zu diesem Eintrag. Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „Zusammenfassung der Kenntnisse im Bereich MySQL-Indexoperationen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-Allgemeinfunktionen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-Protokolloperationen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-Transaktionsoperationen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-gespeicherte Prozeduren“ und „Zusammenfassung der Kenntnisse im Zusammenhang mit MySQL-Datenbanksperren“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: jQuery implementiert Funktionen zum Reduzieren und Erweitern von Artikeln
>>: Verwenden von jQuery zum Implementieren des Karusselleffekts
Inhaltsverzeichnis 1. Was ist SVN? 2. Methoden zu...
Ursprünglich sollte dieses siebte Kapitel eine aus...
Dieser Artikel dokumentiert den Installations- un...
Inhaltsverzeichnis 1. In die Grube fallen 2. Verg...
Super ausführliches Tutorial zur Installation und...
Ich werde meinen ersten Versuch mit vue3.0 aufzei...
Übersicht zur Netzwerkkommunikation Bei der Entwi...
In MySQL 8.0.18 wurde eine neue Hash-Join-Funktio...
Als ich früher Join-Tabellenabfragen geschrieben ...
Dieser Artikel beschreibt, wie man eine MySQL Mas...
RPM-Paketverwaltung Ein Verpackungs- und Installa...
Optimierungsideen Es gibt zwei Hauptoptimierungsr...
Offizielle Docker Hub-Website 1. Suchen Sie nach ...
In den meisten Anwendungsszenarien müssen wir wic...
1 Überprüfen Sie, ob der Kernel ein Tun-Modul hat...