Heim > Datenbank > MySQL-Tutorial > Erklären Sie anhand von Beispielen, wie MySQL geplante Aufgaben implementiert

Erklären Sie anhand von Beispielen, wie MySQL geplante Aufgaben implementiert

王林
Freigeben: 2020-01-21 20:31:11
nach vorne
2155 Leute haben es durchsucht

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';
Nach dem Login kopieren

2. Schalten Sie den Ereignisplaner ein

set global event_scheduler = on;
Nach dem Login kopieren

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
Nach dem Login kopieren

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 }
Nach dem Login kopieren

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;
Nach dem Login kopieren

5. Veranstaltung öffnen

ALTER EVENT event_name ENABLE;
Nach dem Login kopieren

6. Veranstaltung löschen

DROP EVENT [IF EXISTS ] event_name;
Nach dem Login kopieren

Alle Ereignisse anzeigen

SHOW EVENTS;
Nach dem Login kopieren

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;
Nach dem Login kopieren

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());
Nach dem Login kopieren

Das Ergebnis ist wie in der Abbildung dargestellt:

Erklären Sie anhand von Beispielen, wie MySQL geplante Aufgaben implementiert

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!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage