Rumah  >  Artikel  >  pangkalan data  >  Cara menggunakan penjadual acara MySQL untuk melaksanakan penjadualan tugas berjadual

Cara menggunakan penjadual acara MySQL untuk melaksanakan penjadualan tugas berjadual

WBOY
WBOYasal
2023-08-03 09:43:501693semak imbas

Cara menggunakan penjadual acara MySQL untuk melaksanakan penjadualan tugas berjadual

Apabila membangunkan dan mengurus pangkalan data, selalunya perlu untuk melaksanakan tugas tertentu dengan kerap, seperti sandaran harian pangkalan data, laporan statistik mingguan, dsb. MySQL menyediakan alat yang sangat berguna, Penjadual Acara, yang boleh membantu kami melaksanakan penjadualan tugas berjadual. Artikel ini akan memperkenalkan cara menggunakan penjadual acara MySQL untuk melaksanakan penjadualan tugas berjadual dan menyediakan contoh kod yang sepadan.

1. Hidupkan penjadual acara

Sebelum menggunakan penjadual acara, anda perlu mengesahkan sama ada penjadual acara MySQL telah dihidupkan. Anda boleh menyemak status penjadual acara melalui arahan berikut:

TUNJUKKAN PEMBOLEH UBAH SEPERTI 'event_scheduler'

Jika keputusan Mati, anda perlu menghidupkan penjadual acara secara manual. Ia boleh dihidupkan dengan arahan berikut:

SET GLOBAL event_scheduler = ON

Selepas ia berjaya dihidupkan, anda boleh mengesahkan bahawa penjadual acara telah dihidupkan dengan melaksanakan perintah SHOW VARIABLES LIKE 'event_scheduler'; . . Sintaks khusus adalah seperti berikut:

CIPTA nama_acara

PADA jadual JADUAL

[SELESAIKAN [TIDAK] PELIHARA]

[DAYAKAN | LUPASKAN]
    [ULASAN 'rentetan']
  1. LAKUKAN nama_acara;
  2. nama acara adalah acara dan jadual ialah Kitaran penjadualan, event_body ialah operasi khusus acara.

Tetapkan kitaran penjadualan



Kitaran penjadualan boleh ditetapkan mengikut keperluan sebenar. Berikut adalah kitaran penjadualan yang biasa digunakan:


Lakukan sekali setiap saat: SETIAP 1 SAAT

Lakukan sekali setiap minit: SETIAP 1 MINIT

    Lakukan sekali setiap jam: SETIAP 1 JAM
  1. Sekali
  2. Setiap hari
Setiap hari

:Setiap hari

Dilaksanakan seminggu sekali: SETIAP 1 MINGGU
  • Dilaksanakan sebulan sekali: SETIAP 1 BULAN
  • Anda boleh memilih tempoh penjadualan yang sesuai mengikut keperluan anda.
  • Tulis operasi khusus acara
  • Tulis logik operasi khusus dalam bahagian event_body. Anda boleh menggunakan pernyataan SQL untuk melaksanakan operasi pangkalan data, atau anda boleh memanggil prosedur atau fungsi yang disimpan.
  • Berikut ialah contoh tugas berjadual untuk membuat sandaran pangkalan data pada jam 3 pagi setiap hari:

CIPTA backup_event EVENT

PADA JADUAL SETIAP 1 HARI
    MULA '2022-01-01 03:00:00'
  1. BERMULA
  2. DECLARE backup_file VARCHAR(255);
    SET backup_file := CONCAT('/var/backup/db_', DATE_FORMAT(NOW(), '%Y%m%d_%H%i%s'), '.sql');
    SET @sql := CONCAT('mysqldump -hlocalhost -uroot -ppassword dbname > ', backup_file);
    PREPARE stmt FROM @sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END ;

Kod di atas mencipta penjadual acara bernama backup_event, dan menetapkan tempoh penjadualan untuk dilaksanakan sekali sehari. Dalam bahagian event_body, pembolehubah backup_file pertama kali ditakrifkan untuk menyimpan laluan fail sandaran. Kemudian gunakan fungsi CONCAT untuk menyambung laluan fail sandaran, dan kemudian gunakan pernyataan SET untuk menetapkan arahan sandaran kepada pembolehubah @sql. Akhir sekali, gunakan penyata PREPARE dan EXECUTE untuk melaksanakan arahan sandaran.

3. Urus tugas berjadual


Selepas menggunakan pernyataan CREATE EVENT untuk mencipta tugasan berjadual, anda boleh mengurusnya melalui arahan berikut:


Lihat semua penjadual acara: Tunjukkan ACARA; penjadual: SHOW EVENT event_name;

Dayakan penjadual acara: ALTER EVENT event_name DAY;

Lumpuhkan penjadual acara: ALTER EVENT event_name DISABLE;

Ubah suai masa pelaksanaan penjadual acara: ALTER ON EVENT_time_name ;

Lulus arahan Pengurusan boleh melihat dan mengurus tugas yang dijadualkan dengan mudah.
  • Ringkasan
  • Artikel ini memperkenalkan cara menggunakan penjadual acara MySQL untuk melaksanakan penjadualan tugas berjadual. Dengan mencipta penjadual acara, menetapkan kitaran penjadualan dan menulis logik operasi khusus, anda boleh dengan mudah melaksanakan fungsi melaksanakan tugas pangkalan data dengan mudah. Pembangun boleh menyesuaikan kitaran penjadualan dan logik operasi tugas berjadual berdasarkan keperluan sebenar. Penjadual acara MySQL menyediakan lebih fleksibiliti dan kemudahan untuk pembangunan dan pengurusan pangkalan data kami.
  • Kod rujukan:
  • --Buat penjadual acara
  • CIPTA backup_event ACARA
  • PADA JADUAL SETIAP 1 HARI
  • MULA '2022-01-01 03:00:00'
EVENT

Lihat semula

semua penjadual acara

TUNJUKKAN ACARA;

--Lihat maklumat tentang penjadual acara yang ditentukan

TUNJUKKAN ACARA backup_event;


--Dayakan penjadual acara
ALTER EVENT backup_event DAYAKAN;

--Nyahdayakan jadual sandaran_acara ;

-- Ubah suai masa pelaksanaan penjadual acara

UBAH EVENT backup_event PADA JADUAL PADA '2023-01-01 03:00:00';

Atas ialah kandungan terperinci Cara menggunakan penjadual acara MySQL untuk melaksanakan penjadualan tugas berjadual. 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