Heim >Datenbank >MySQL-Tutorial >Detaillierte Erläuterung der Beispiele für neue MySQL-Funktionen (Ereignisplaner).
EventScheduler ist eine neue Funktion , die nach MySQL5.1 hinzugefügt wurde und die Datenbank gemäß A festlegen kann Der benutzerdefinierte Zeitraum löst einen bestimmten Vorgang aus, der als Zeit--Trigger verstanden werden kann, und ähnelt <a href="http://www.php.cn/wiki/1497.html%20" target="_blank">linux</a>Die Taskplaner-Crontab unter dem System oder ähnlich der geplanten Aufgabe unter dem Fenster
. Erwähnenswert ist, dass der Ereignisplaner von MySQL eine Aufgabe pro Sekunde ausführen kann, während die geplanten Aufgaben des Betriebssystems (wie CRON unter Linux oder die Aufgabenplanung unter Windows) nur eine Aufgabe pro Minute ausführen können. 类似于<a href="http://www.php.cn/wiki/1497.html" target="_blank">linux</a>系统下面的任务调度器crontab,或者类似与window下面的计划任务
Um zu überprüfen, ob das Ereignis aktiviert ist, verwenden Sie den folgenden Befehl:
#方式一 SHOW VARIABLES LIKE 'event_scheduler'; #方式二 SELECT @@event_scheduler; #方式三 SHOW PROCESSLIST; #查看事件状态 SHOW EVENTS;Wenn Sie sehen, dass „event_scheduler“ aktiviert ist oder „event_scheduler“-Informationen in PROCESSLIST angezeigt werden, wurde das Ereignis aktiviert. Wenn es als „Aus“ angezeigt wird oder die event_scheduler-Informationen nicht in PROCESSLIST sichtbar sind, bedeutet dies, dass das Ereignis nicht aktiviert ist und wir es aktivieren müssen.
Methode 1. Dynamische Parameter ändern
SET GLOBAL event_scheduler = ON;Nach dem Ändern dieses Parameters dauert es Wirkung sofort, aber ein Neustart von MySQL hat es wiederhergestellt, das heißt, die Einstellungen können sich nicht über Neustarts erstrecken.
Methode 2. Ändern Sie die Konfigurationsdatei und starten Sie dann neu Fügen Sie den folgenden Inhalt zum Abschnitt [mysqld] in my.cnf hinzu und starten Sie dann mysql neu.
event_scheduler=ON;Ein für alle Mal benötigen Sie die Erlaubnis, die Datenbankkonfiguration zu ändern.
Methode 3: Fügen Sie „–event_scheduler=1“ direkt zum Startbefehl hinzu
mysqld ... --event_scheduler=ON
CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment'] DO event_body; schedule: AT timestamp [+ INTERVAL interval] ... | EVERY interval [STARTS timestamp [+ INTERVAL interval] ...] [ENDS timestamp [+ INTERVAL interval] ...] interval: quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}DEFINER: Definieren Sie den Benutzer, der die Berechtigungen überprüft, wenn das Ereignis ausgeführt wird.
ON SCHEDULE-Zeitplan: Definieren Sie die Ausführungszeit und das Intervall.
ON COMPLETE [NOT] PRESERVE: Definieren Sie, ob das Ereignis einmal oder dauerhaft ausgeführt wird. Der Standardwert ist eine einzige Ausführung, also NICHT PRESERVE.
ENABLE |. DISABLE ON SLAVE: Definieren Sie, ob das Ereignis nach seiner Erstellung aktiviert oder deaktiviert wird und ob es von oben deaktiviert wird. Wenn der Slave-Server die Anweisung des Erstellungsereignisses automatisch auf dem Master synchronisiert, wird DISABLE ON SLAVE automatisch hinzugefügt.
COMMENT 'Kommentar':
Kommentar, der das Ereignis definiert.
ALTER [DEFINER = { user | CURRENT_USER }] EVENT event_name [ON SCHEDULE schedule] [ON COMPLETION [NOT] PRESERVE] [RENAME TO new_event_name] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment'] [DO event_body]
DROP EVENT [IF EXISTS] event_name;
Beispiel 1Zeitgesteuert, um Nachrichten alle zu senden 3 Sekunden
Daten in Tabelle test2 einfügen
create event event_insert_t2 on schedule every 3 second on completion preserve do insert into test2(department,time_v) value('1',now());Ausführungsergebnis
Beispiel 2Erstellen Sie ein Ereignis, das die Testtabellendaten nach 10 Minuten löscht
CREATE EVENT IF NOT EXISTS event_truncate_test2 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 10 MINUTE DO TRUNCATE TABLE test2;
Beispiel 3Erstellen Sie ein Ereignis im 17.04.2015 Das Ereignis des Löschens der Testtabellendaten um 14:42:00 Uhr
DROP EVENT IF EXISTS event_truncate_test2; CREATE EVENT event_truncate_test2 ON SCHEDULE AT TIMESTAMP '2015-04-17 14:42:00' DO TRUNCATE TABLE test2;
Beispiel 4Beginnen Sie nach 5 Tagen mit dem Einfügen von Daten in die Tabelle test2 zu einer geplanten Zeit von 3 Sekunden jeden Tag für einen Monat. Stoppen Sie dann die Ausführung
CREATE EVENT IF NOT EXISTS event_truncate_test2 ON SCHEDULE EVERY 3 SECOND STARTS CURRENT_TIMESTAMP + INTERVAL 5 day ENDS CURRENT_TIMESTAMP + INTERVAL 1 month ON COMPLETION PRESERVE DO INSERT INTO test2(department,time_v) VALUES('1',NOW());
Beispiel 1 Schließen Sie das Ereignis vorübergehend.
alter event event_insert_t2 disable;Andere ähnliche Erstellungsereignisse.
DROP EVENT IF EXISTS event_insert_t2;Der Ereignisaufruf
gespeicherte Prozedur oder Funktion ähnelt einem normalen Aufruf.
Geeignet für die regelmäßige Erfassung statistischer Informationen, die regelmäßige Löschung historischer Daten, regelmäßige Datenbankprüfungen usw.
Kostenloses MySQL-Online-Video-Tutorial
23. Boolean Education Yan Shiba MySQL-Einführungsvideo-Tutorial
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Beispiele für neue MySQL-Funktionen (Ereignisplaner).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!