Rumah  >  Artikel  >  pangkalan data  >  Cara menggunakan pencetus dan peristiwa dalam MySQL

Cara menggunakan pencetus dan peristiwa dalam MySQL

王林
王林asal
2023-09-10 10:40:46740semak imbas

Cara menggunakan pencetus dan peristiwa dalam MySQL

MySQL ialah sistem pengurusan pangkalan data perhubungan yang biasa digunakan dengan fungsi yang berkuasa dan penggunaan yang fleksibel menjadikannya pilihan pertama bagi banyak pembangun dan perusahaan. Dalam MySQL, pencetus dan peristiwa adalah dua konsep penting yang boleh melaksanakan fungsi seperti pemantauan data, perlindungan integriti data, dan penyegerakan data. Artikel ini akan memperkenalkan penggunaan pencetus dan peristiwa dalam MySQL.

1. Pencetus

  1. Gambaran keseluruhan pencetus

Pencetus ialah prosedur khas yang disimpan dalam MySQL dikaitkan dengan jadual dan secara automatik mencetuskan tindakan yang dipratentukan apabila menambah, memadam atau mengubah suai jadual. Pencetus dibahagikan kepada tiga kategori: SEBELUM pencetus, SELEPAS pencetus dan BUKANNYA pencetus. Pencetus SEBELUM menyala sebelum operasi dilakukan, pencetus SELEPAS menyala selepas operasi dijalankan, dan pencetus SEBANYAK menggantikan operasi asal sebelum operasi dilakukan. Melalui pencetus, kami boleh melengkapkan beberapa operasi secara automatik apabila data berubah, seperti mengemas kini jadual berkaitan, merakam log, menghantar pemberitahuan, dsb.

  1. Mencipta pencetus

Mencipta pencetus memerlukan penggunaan pernyataan CREATE TRIGGER. Sintaksnya adalah seperti berikut:

BUAT TRIGGER trigger_name
SEBELUM/SELEPAS/BUKANNYA masukkan/kemas kini/padam
ON table_name
UNTUK #trigger_body #🎜🎜 #
Antaranya, trigger_name ialah nama pencetus, sisip/kemas kini/padam ialah masa pencetus, table_name ialah nama jadual yang menjadi milik pencetus, dan trigger_body ialah logik khusus bagi pencetus. Dalam trigger_body, anda boleh menggunakan BARU untuk merujuk kepada nilai yang baru dimasukkan dan LAMA untuk merujuk kepada nilai lama.

Contoh
  1. Berikut ialah contoh yang secara automatik memasukkan rekod log ke dalam log jadual apabila rekod baharu dimasukkan ke dalam pelajar jadual :

CIPTA JADUAL pelajar (

id INT PRIMARY KEY AUTO_INNCREMENT,

nama VARCHAR(100),
umur INT#🎜🎜🎜#);#🎜#🎜 . # 🎜🎜#BUAT PENCETUS insert_log SELEPAS INSERT
ON pelajar UNTUK SETIAP BARISAN
BEGIN
INSERT IN TO log (tindakan, cap waktu) NILAI ('insert', NOW());#🎜 TAMAT //

Apabila memasukkan rekod baharu, pencetus akan melakukan operasi memasukkan log secara automatik. Setiap tindakan yang dimasukkan menambah rekod log, termasuk jenis tindakan dan cap masa.

2. Acara

Gambaran keseluruhan acara



Acara ialah tugas berjadual di MySQL titik masa tertentu atau secara berkala. Melalui acara, kami boleh melaksanakan penyata SQL tertentu, prosedur tersimpan atau memanggil arahan sistem tepat pada masanya. Peristiwa boleh digunakan dalam senario seperti sandaran biasa data, pembersihan data tamat tempoh, statistik automatik data, dsb.


Mencipta acara

Mencipta acara memerlukan penggunaan pernyataan CREATE EVENT. Sintaksnya adalah seperti berikut:

CREATE EVENT event_name
    ON SCHEDULE schedule
  1. [DO sql_statements]
  2. [COMPLETION NOT PRESERVE]#DISABLE]#🎜 #🎜🎜 #
Di mana nama_peristiwa ialah nama acara, jadual ialah ungkapan masa yang mencetuskan acara, sql_statements ialah pernyataan SQL atau panggilan prosedur tersimpan untuk dilaksanakan apabila acara dicetuskan, PENYELESAIAN dan DAYAKAN/LUmpuhkan adalah pilihan. parameter, digunakan untuk menentukan masing-masing Sama ada acara mengekalkan status penyiapan dan mendayakan atau melumpuhkan acara tersebut.

    Contoh
Berikut ialah contoh untuk melakukan operasi pangkalan data sandaran setiap pagi:

CREATE EVENT # 🎜🎜#JADUAL SETIAP 1 HARI

MULA '2022-01-01 00:00:00'
LAKUKAN
BERMULA

-- 执行备份操作
#🎜🎜;#rreee#🎜🎜 #
Event backup_event mentakrifkan acara yang dilaksanakan sekali sehari dan berkuat kuasa dari masa mula yang ditentukan. Apabila peristiwa dicetuskan, operasi SQL antara BEGIN dan END akan dilaksanakan.

Ringkasan:

    Melalui pencetus dan peristiwa, kami boleh melaksanakan beberapa operasi data lanjutan dan fungsi pengurusan dalam MySQL. Pencetus boleh mencetuskan operasi berkaitan secara automatik apabila data berubah, dan peristiwa boleh melaksanakan tugas tertentu dengan kerap. Penggunaannya adalah mudah dan fleksibel, membolehkan kami menggunakan fungsi MySQL yang berkuasa dengan lebih baik dan meningkatkan kecekapan pembangunan dan keselamatan data.
  1. Melalui pengenalan artikel ini, saya percaya bahawa pembaca mempunyai pemahaman tertentu tentang penggunaan pencetus dan peristiwa dalam MySQL, dan boleh menggunakannya secara fleksibel dalam pembangunan sebenar untuk mencapai pengurusan pangkalan data yang lebih cekap.

Atas ialah kandungan terperinci Cara menggunakan pencetus dan peristiwa dalam MySQL. 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