Heim >Datenbank >MySQL-Tutorial >Erklären Sie anhand von Beispielen, wie MySQL geplante Aufgaben implementiert
Seit MySQL 5.1.6 wurde eine ganz besondere Funktion hinzugefügt – der Ereignisplaner, mit dem bestimmte spezifische Aufgaben nach einem Zeitplan ausgeführt werden können (z. B. Datensätze löschen, Daten löschen). Aggregation, Datensicherung usw.), um die Arbeit zu ersetzen, die nur durch geplante Aufgaben des Betriebssystems ausgeführt werden konnte.
Was noch erwähnenswert ist, ist, dass der Ereignisplaner von MySQL jede Sekunde genau eine Aufgabe ausführen kann, während die geplanten Aufgaben des Betriebssystems (wie der Cron von Linux oder der Aufgabenplan unter Windows) nur jede Minute genau ausführen können . Es eignet sich sehr gut für einige Anwendungen, die hohe Echtzeitdaten erfordern (z. B. Aktien, Quoten, Ergebnisse usw.).
Ereignisplaner werden manchmal als temporäre Auslöser bezeichnet, da Ereignisplaner auf der Grundlage eines bestimmten Zeitraums zur Ausführung bestimmter Aufgaben ausgelöst werden, während Auslöser auf der Grundlage einer bestimmten Tabelle ausgelöst werden Unterschied liegt.
1. Überprüfen Sie, ob
> show variables like 'event_scheduler';
2. Schalten Sie den Ereignisplaner ein
set global event_scheduler = on;
Die Einstellung hier, wenn MySQL neu startet Anschließend wird es automatisch wieder geschlossen. Wenn Sie es ständig aktivieren müssen, müssen Sie es in my.ini wie folgt konfigurieren:
(empfohlenes Lernvideo-Tutorial: MySQL-Video-Tutorial)
event_scheduler = on
drei, Ereignissyntax erstellen
CREATE EVENT [IF NOT EXISTS ] event_name ON SCHEDULE schedule [ ON COMPLETION [ NOT ] PRESERVE ] [ ENABLE | DISABLE ] [ COMMENT '注释' ] DO SQL语句; schedule : AT TIMESTAMP [+ INTERVAL interval ] | EVERY interval [ STARTS TIMESTAMP ] [ ENDS TIMESTAMP ] interval : quantity { YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND }
event_name: Ereignisname, maximale Länge 64 Zeichen.
Zeitplan: Ausführungszeit.
[ BEI ABSCHLUSS [ NICHT ] ERHALTEN ]: Ob das Ereignis wiederverwendet werden muss.
[ ENABLE |. DISABLE ]: Das Ereignis wird ein- oder ausgeschaltet.
4. Veranstaltung schließen
ALTER EVENT event_name DISABLE;
5. Veranstaltung öffnen
ALTER EVENT event_name ENABLE;
6. Veranstaltung löschen
DROP EVENT [IF EXISTS ] event_name;
Alle Ereignisse anzeigen
SHOW EVENTS;
8. Ereignisbeispiele
Wir erstellen zunächst ein einfaches The Die Testtabelle wird zum Testen von
CREATE TABLE `test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `now` datetime DEFAULT NULL COMMENT '时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
verwendet. Es gibt zwei Ereignistypen: einer ist intervallauslösend und der andere wird zu einem bestimmten Zeitpunkt ausgelöst.
Wir fügen jede Sekunde einen Datensatz in die Testtabelle ein:
DROP EVENT IF EXISTS event_test; CREATE EVENT event_test ON SCHEDULE EVERY 1 SECOND STARTS '2017-08-22 11:57:00' ENDS '2017-08-22 12:00:00' ON COMPLETION PRESERVE ENABLE COMMENT '每隔一秒向test表插入记录' DO INSERT INTO test VALUES(NULL, now());
Das Ergebnis ist wie in der Abbildung dargestellt:
Tutorials zu verwandten Artikeln Empfohlen: MySQL-Tutorial
Das obige ist der detaillierte Inhalt vonErklären Sie anhand von Beispielen, wie MySQL geplante Aufgaben implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!