Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menjadualkan Pertanyaan MySQL untuk Dijalankan Secara Automatik pada Selang Set?

Bagaimanakah Saya Boleh Menjadualkan Pertanyaan MySQL untuk Dijalankan Secara Automatik pada Selang Set?

Susan Sarandon
Susan Sarandonasal
2024-11-30 01:43:10832semak imbas

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

Menjadualkan Pertanyaan MySQL: Jawapan Komprehensif

Menjadualkan pertanyaan MySQL untuk dijalankan pada selang waktu tertentu boleh menjadi alat yang berharga untuk analisis dan pelaporan data . Pertimbangkan senario berikut di mana anda mempunyai pangkalan data inventori dan memerlukan data penilaian stok sejarah.

Menjadualkan Pertanyaan dengan Penjadual Acara

MySQL menyediakan ciri Penjadual Acara yang membolehkan anda untuk mengautomasikan tugas berdasarkan jadual. Untuk menjadualkan pertanyaan anda, mula-mula buat jadual stock_dumps dengan medan yang ditentukan:

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

Seterusnya, buat acara Penjadual Acara menggunakan sintaks ini:

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;

Acara ini dijadualkan untuk dijalankan setiap hari, memasukkan data penilaian stok semasa ke dalam jadual stock_dumps.

Menjadualkan Pertanyaan dengan Cron Jobs

Sebagai alternatif, anda boleh menggunakan cron jobs (Linux) atau Windows Scheduled Tasks untuk mengautomasikan tugasan ini. Cipta fail SQL dengan pertanyaan berikut:

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;

Kemudian, jadualkan arahan berikut untuk dijalankan pada selang yang dikehendaki:

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

Pendekatan ini membolehkan anda menyesuaikan selang penjadualan dan melaksanakan pertanyaan menggunakan antara muka baris arahan.

Pilih kaedah yang paling sesuai dengan keperluan anda dan automatikkan pertanyaan MySQL anda untuk data yang cekap perolehan dan analisis.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjadualkan Pertanyaan MySQL untuk Dijalankan Secara Automatik pada Selang Set?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn