Detaillierte Erläuterung von MySQL-Ereignisänderungsereignissen (ALTER EVENT), Deaktivierungsereignissen (DISABLE), Aktivierungsereignissen (ENABLE), Ereignisumbenennungen und Datenbankereignismigrationsvorgängen

Detaillierte Erläuterung von MySQL-Ereignisänderungsereignissen (ALTER EVENT), Deaktivierungsereignissen (DISABLE), Aktivierungsereignissen (ENABLE), Ereignisumbenennungen und Datenbankereignismigrationsvorgängen

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:
  • So benennen Sie die Tabelle in MySQL um und worauf Sie achten müssen
  • Schnelle und sichere Methode zum Umbenennen einer MySQL-Datenbank (3 Arten)
  • Detaillierte Erklärung einer Methode zum Umbenennen von Prozeduren in MySQL
  • Umbenennen von Feldern mithilfe von SQL-Anweisungen in MySQL
  • Freigabe von Umbenennungsanweisungen für MySQL-Datenbanken
  • Bringen Sie Ihnen bei, wie Sie mit Python eine MySql-Datenbank betreiben
  • Entwickeln Sie ein kleines Tool zur Bedienung von MySQL mit Python
  • Python-Grundlagen: Bedienung einer MySQL-Datenbank
  • Python-Chatroom mit Beispielcode zur Schnittstellenimplementierung (tkinter, Mysql, Treading, Socket)
  • Teilen einfacher Schritte zum Bedienen einer MySQL-Datenbank mit Python
  • Detaillierte Erläuterung der Idee, Python-SQL-Anweisungen zum Ausführen von Fuzzy-Abfragen mit mehreren Bedingungen in der MySQL-Datenbank zu verwenden
  • Implementieren von Add, Delete, Modify und Check in Python mit tkinter+MySQL
  • Verwenden Sie Python, um die MySQL-Datenbank schnell umzubenennen

<<:  jQuery implementiert Funktionen zum Reduzieren und Erweitern von Artikeln

>>:  Verwenden von jQuery zum Implementieren des Karusselleffekts

Artikel empfehlen

Vue Grundlagen Listener Detaillierte Erklärung

Inhaltsverzeichnis Was ist ein Listener in Vue? V...

Problem mit der V-HTML-Rendering-Komponente

Da ich bereits HTML analysiert habe, möchte ich h...

Fehler bei der Eingabe chinesischer Zeichen im Flex-Programm Firefox

In niedrigeren Versionen von Firefox können keine ...

Analyse der Schwierigkeiten im Hot-Standby der MySQL-Datenbank

Ich habe Ihnen zuvor die Konfigurationsmethode fü...

Docker+Gitlab+Jenkins erstellt automatisierte Bereitstellung von Grund auf

Inhaltsverzeichnis Vorwort: 1. Docker installiere...

MYSQL Left Join-Optimierung (10 Sekunden bis 20 Millisekunden)

Inhaltsverzeichnis 【Funktionshintergrund】 [Rohes ...

Detaillierte Erklärung der Schritte zum Erstellen eines Vue-Projekts mit Vue-cli

Zuerst müssen Sie Vue-cli installieren: npm insta...