Rumah  >  Artikel  >  pangkalan data  >  Penjelasan terperinci tentang definisi dan penggunaan pencetus MySQL

Penjelasan terperinci tentang definisi dan penggunaan pencetus MySQL

WBOY
WBOYasal
2024-03-15 18:12:04968semak imbas

Penjelasan terperinci tentang definisi dan penggunaan pencetus MySQL

Penjelasan terperinci tentang definisi dan penggunaan pencetus MySQL

MySQL trigger ialah prosedur tersimpan khas yang boleh dilaksanakan secara automatik apabila peristiwa tertentu berlaku dalam jadual. Pencetus boleh digunakan untuk melaksanakan fungsi seperti pemprosesan data automatik dan penyelenggaraan ketekalan data. Artikel ini akan memperkenalkan definisi dan penggunaan pencetus MySQL secara terperinci, dan memberikan contoh kod khusus.

  1. Definisi pencetus
    Dalam MySQL, definisi pencetus dicapai melalui kenyataan CREATE TRIGGER. Sintaks CREATE TRIGGER adalah seperti berikut:
CREATE TRIGGER trigger_name
BEFORE/AFTER INSERT/UPDATE/DELETE
ON table_name FOR EACH ROW
BEGIN
    -- 触发器执行的SQL语句
END;

Antaranya, CREATE TRIGGER digunakan untuk menentukan pencetus, trigger_name ialah nama pencetus, SEBELUM/SELEPAS menunjukkan sama ada pencetus dilaksanakan sebelum atau selepas acara, dan INSERT /KEMASKINI/DELETE menunjukkan sama ada pencetus adalah Untuk operasi masukkan, kemas kini atau padam, nama_jadual ialah nama jadual yang dimiliki oleh pencetus UNTUK SETIAP BARIS bermakna pencetus dilaksanakan sekali untuk setiap baris data ialah pernyataan SQL yang dilaksanakan secara khusus oleh pencetus.

  1. Cara menggunakan pencetus
    Seterusnya, kami akan menggunakan contoh khusus untuk menunjukkan penggunaan pencetus MySQL. Katakan kita mempunyai jadual pelajar (pelajar), yang mengandungi nama pelajar dan medan markah. Kami mahu mengira gred pelajar (peringkat) secara automatik apabila memasukkan data pelajar baharu.

Pertama, kami mencipta pencetus bernama student_level, kodnya adalah seperti berikut:

DELIMITER $$

CREATE TRIGGER student_level_trigger
BEFORE INSERT ON student
FOR EACH ROW
BEGIN
    DECLARE level VARCHAR(10);
    IF NEW.score >= 90 THEN
        SET level = 'A';
    ELSEIF NEW.score >= 80 THEN
        SET level = 'B';
    ELSEIF NEW.score >= 70 THEN
        SET level = 'C';
    ELSE
        SET level = 'D';
    END IF;
    
    SET NEW.level = level;
END;
$$

DELIMITER ;

Dalam kod di atas, kami mencipta SEBELUM INSERT jenis pencetus student_level_trigger, apabila data murid baharu dimasukkan, pencetus Tahap murid akan secara automatik ditetapkan berdasarkan gred pelajar dan dikemas kini dalam bidang tahap.

Seterusnya, kami memasukkan sekeping data pelajar untuk menguji sama ada pencetus itu berkesan:

INSERT INTO student(name, score) VALUES('小明', 85);

Selepas melaksanakan penyataan sisipan di atas dan menanyakan data dalam jadual pelajar, anda dapat melihat bahawa tahap pelajar telah dikira dan diisi padang aras.

Ringkasan: Artikel ini memperkenalkan definisi dan penggunaan pencetus MySQL secara terperinci, dan menunjukkan aplikasi praktikal pencetus melalui contoh khusus. Pencetus adalah fungsi yang sangat berkuasa dalam MySQL, yang boleh merealisasikan fungsi seperti automasi pemprosesan data dan penyelenggaraan ketekalan data Pembangun boleh menggunakan pencetus secara fleksibel mengikut keperluan sebenar untuk meningkatkan kecekapan dan ketepatan pemprosesan data.

Atas ialah kandungan terperinci Penjelasan terperinci tentang definisi dan penggunaan pencetus 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