Menjadualkan Pertanyaan MySQL
Ciri Penjadual Acara dalam MySQL membolehkan pengguna menjadualkan tugas untuk dijalankan pada selang waktu tertentu. Fungsi ini bermanfaat dalam pelbagai senario, seperti sandaran data berkala atau menjana laporan secara tetap.
Kajian Kes: Penilaian Inventori
Anda mempunyai pangkalan data inventori di mana anda perlu menjana laporan mengenai penilaian mengikut item untuk tarikh yang lalu. Walaupun anda boleh mengira penilaian untuk stok semasa secara manual, anda memerlukan cara untuk menjejaki penilaian sejarah juga.
Penyelesaian: Menggunakan Penjadual Acara
Untuk menjadualkan pertanyaan yang membuang data penilaian ke dalam jadual berasingan, ikut langkah berikut:
Buat jadual destinasi:
CREATE TABLE stock_dumps ( itemcode VARCHAR(255), quantity INT, avgcost DECIMAL(10,2), ttlval DECIMAL(10,2), dump_date DATETIME );
Penjadualan persediaan:
CREATE EVENT Dumping_event ON SCHEDULE EVERY 1 DAY ON COMPLETION NOT PRESERVE ENABLE 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;
Alternatif: Menggunakan Cron/Scheduled Job
Jika anda memilih untuk tidak menggunakan Penjadual Acara, anda boleh mencipta tugas cron atau tugas berjadual yang melaksanakan fail SQL yang mengandungi pertanyaan pembuangan secara kerap.
Buat fail SQL:
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;
Jadualkan kerja:
mysql -u [user] -p [password] < /path/to/SQL_file.sql
Dengan menjadualkan pertanyaan ini setiap hari atau sekerap yang diperlukan, anda boleh mengekalkan rekod sejarah penilaian inventori dan menjana laporan untuk mana-mana tarikh lalu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengautomasikan Laporan Penilaian Inventori Harian dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!