Heim >Datenbank >MySQL-Tutorial >Wie kann ich MySQL-Abfragen so planen, dass sie automatisch in festgelegten Intervallen ausgeführt werden?

Wie kann ich MySQL-Abfragen so planen, dass sie automatisch in festgelegten Intervallen ausgeführt werden?

Susan Sarandon
Susan SarandonOriginal
2024-11-30 01:43:10832Durchsuche

How Can I Schedule MySQL Queries to Run Automatically at Set Intervals?

MySQL-Abfragen planen: Eine umfassende Antwort

Die Planung einer MySQL-Abfrage zur Ausführung in bestimmten Intervallen kann ein wertvolles Werkzeug für die Datenanalyse und Berichterstattung sein . Stellen Sie sich das folgende Szenario vor, in dem Sie über eine Bestandsdatenbank verfügen und historische Bestandsbewertungsdaten benötigen.

Planen einer Abfrage mit Event Scheduler

MySQL bietet eine Event Scheduler-Funktion, die Ihnen dies ermöglicht um Aufgaben basierend auf einem Zeitplan zu automatisieren. Um Ihre Abfrage zu planen, erstellen Sie zunächst die Tabelle „stock_dumps“ mit den angegebenen Feldern:

CREATE TABLE stock_dumps (itemcode VARCHAR(255), quantity INT, avgcost DECIMAL(10,2), ttlval DECIMAL(10,2), dump_date DATETIME);

Als nächstes erstellen Sie das Event Scheduler-Ereignis mit dieser Syntax:

CREATE EVENT `Dumping_event` ON SCHEDULE
        EVERY 1 DAY
    ON COMPLETION NOT PRESERVE
    ENABLE
    COMMENT ''
    DO BEGIN
INSERT INTO stock_dumps(itemcode, quantity, avgcost, ttlval,dump_date)
SELECT itmcode, quantity, avgcost, (avgcost * quantity)as ttlval, NOW()
  FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode;
END;

Die Ausführung dieses Ereignisses ist geplant Jeden Tag werden die aktuellen Aktienbewertungsdaten in die Tabelle stock_dumps eingefügt.

Planen einer Abfrage mit Cron Jobs

Alternativ können Sie Cron-Jobs (Linux) oder geplante Windows-Aufgaben verwenden, um diese Aufgabe zu automatisieren. Erstellen Sie eine SQL-Datei mit der folgenden Abfrage:

INSERT INTO stock_dumps(itemcode, quantity, avgcost, ttlval,dump_date)
SELECT itmcode, quantity, avgcost, (avgcost * quantity)as ttlval, NOW()
FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode;

Planen Sie dann die Ausführung des folgenden Befehls im gewünschten Intervall:

mysql -uusername -ppassword < /path/to/sql_file.sql

Mit diesem Ansatz können Sie das Planungsintervall anpassen und führt die Abfrage über die Befehlszeilenschnittstelle aus.

Wählen Sie die Methode, die Ihren Anforderungen am besten entspricht, und automatisieren Sie Ihre MySQL-Abfragen für einen effizienten Datenabruf und Analyse.

Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Abfragen so planen, dass sie automatisch in festgelegten Intervallen ausgeführt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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