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

SVN-Installation und grundlegende Bedienung (grafisches Tutorial)

Inhaltsverzeichnis 1. Was ist SVN? 2. Methoden zu...

Webdesign-Erfahrung: Effizientes Schreiben von Webcode

Ursprünglich sollte dieses siebte Kapitel eine aus...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.14

Dieser Artikel dokumentiert den Installations- un...

MySQL 8.0.20 Installations- und Konfigurations-Tutorial unter Win10

Super ausführliches Tutorial zur Installation und...

CocosCreator Erste Schritte Tutorial: Netzwerkkommunikation

Übersicht zur Netzwerkkommunikation Bei der Entwi...

Detaillierte Erläuterung der MySQL Master-Slave-Datenbankkonstruktionsmethode

Dieser Artikel beschreibt, wie man eine MySQL Mas...

Detaillierte Erklärung der Linux-RPM- und Yum-Befehle und -Verwendung

RPM-Paketverwaltung Ein Verpackungs- und Installa...

Informationen zur Installation des Python3.8-Images im Docker

Offizielle Docker Hub-Website 1. Suchen Sie nach ...

So sichern Sie MySQL regelmäßig und laden es auf Qiniu hoch

In den meisten Anwendungsszenarien müssen wir wic...