Peristiwa di MySQL adalah tugas yang dijalankan mengikut jadual. Mereka berguna untuk mengautomasikan penyelenggaraan pangkalan data rutin atau melakukan tindakan tertentu pada masa yang ditentukan. Peristiwa boleh melaksanakan penyataan SQL, seperti manipulasi data atau pernyataan definisi data.
Untuk menjadualkan acara di MySQL, anda boleh menggunakan pernyataan CREATE EVENT
. Penjadual acara mesti diaktifkan untuk acara yang akan dilaksanakan. Anda boleh menyemak dan mengaktifkan penjadual acara menggunakan arahan SQL berikut:
<code class="sql">SHOW VARIABLES LIKE 'event_scheduler'; SET GLOBAL event_scheduler = ON;</code>
Sebaik sahaja penjadual acara diaktifkan, anda boleh membuat acara yang dijalankan pada masa atau selang masa tertentu. Struktur asas untuk menjadualkan acara melibatkan menentukan nama acara, jadual, dan pernyataan SQL yang akan dilaksanakan.
Sintaks umum untuk membuat acara di MySQL adalah seperti berikut:
<code class="sql">CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment'] DO sql_statement;</code>
Di sini, event_name
adalah nama acara, schedule
mentakrifkan kapan dan seberapa sering peristiwa itu harus dilaksanakan, ON COMPLETION [NOT] PRESERVE
sama ada peristiwa itu harus dijatuhkan setelah menyelesaikan pelaksanaan terakhirnya, ENABLE | DISABLE | DISABLE ON SLAVE
Menentukan keadaan awal acara, COMMENT
adalah komen pilihan mengenai acara itu, dan sql_statement
adalah kod SQL yang akan dilaksanakan oleh acara itu.
schedule
boleh ditakrifkan dalam pelbagai cara, seperti:
AT 'YYYY-MM-DD HH:MM:SS'
EVERY interval STARTS 'YYYY-MM-DD HH:MM:SS' ENDS 'YYYY-MM-DD HH:MM:SS'
Sebagai contoh, untuk membuat acara yang berjalan setiap hari pada pukul 2 pagi untuk membersihkan rekod lama:
<code class="sql">CREATE EVENT clean_old_records ON SCHEDULE EVERY 1 DAY STARTS '2023-01-01 02:00:00' DO DELETE FROM logs WHERE timestamp </code>
Untuk mengubah suai acara yang dijadualkan di MySQL, anda boleh menggunakan pernyataan ALTER EVENT
. Ini membolehkan anda menukar jadual, pernyataan SQL dilaksanakan, atau sifat lain acara tersebut. Sintaks asas adalah:
<code class="sql">ALTER EVENT event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [RENAME TO new_event_name] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment'] DO sql_statement;</code>
Sebagai contoh, untuk menukar jadual acara clean_old_records
untuk dijalankan setiap dua hari dan bukannya setiap hari:
<code class="sql">ALTER EVENT clean_old_records ON SCHEDULE EVERY 2 DAY STARTS '2023-01-01 02:00:00';</code>
Untuk memadam acara yang dijadualkan, gunakan pernyataan DROP EVENT
. Sintaks adalah:
<code class="sql">DROP EVENT [IF EXISTS] event_name;</code>
Sebagai contoh, untuk memadamkan acara clean_old_records
:
<code class="sql">DROP EVENT clean_old_records;</code>
Apabila menggunakan peristiwa di MySQL, terdapat beberapa batasan dan pertimbangan yang perlu diingat:
Dengan memahami batasan dan pertimbangan ini, anda boleh menggunakan peristiwa dengan lebih berkesan dalam MySQL untuk mengautomasikan tugas dan mengekalkan pangkalan data anda dengan cekap.
Atas ialah kandungan terperinci Apakah peristiwa di MySQL? Bagaimana anda menjadualkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!