Dalam senario pangkalan data yang melibatkan dua jadual, ext_words dan ext_words_count, matlamatnya adalah untuk menjejaki kejadian perkataan. Selepas memasukkan atau mengemas kini perkataan dalam ext_words, pencetus hendaklah:
Awal Pendekatan
Pendekatan awal cuba menggunakan pencetus berasingan untuk sisipan dan kemas kini, tetapi menghadapi masalah dengan mengemas kini medan word_count.
Penyelesaian dengan Pernyataan Bersyarat
Untuk menyelesaikan masalah ini, pencetus tunggal yang menggabungkan pernyataan bersyarat ialah digunakan:
DELIMITER $$ CREATE TRIGGER update_count AFTER INSERT ON ext_words FOR EACH ROW BEGIN IF NOT EXISTS (SELECT 1 FROM ext_words_count WHERE word = NEW.word) THEN INSERT INTO ext_words_count (word) VALUES (NEW.word); ELSE UPDATE ext_words_count SET word_count = word_count + 1 WHERE word = NEW.word; END IF; END $$ DELIMITER ;
Pencetus ini menyemak sama ada perkataan yang disisipkan atau dikemas kini wujud dalam ext_words_count. Jika tidak, ia memasukkan baris baharu untuk perkataan itu dengan kiraan 1. Jika ia wujud, ia menambah kiraan sebanyak 1.
Butiran Pelaksanaan
Dengan menggunakan pernyataan bersyarat dalam pencetus, adalah mungkin untuk mengendalikan kedua-dua senario sisipan dan kemas kini dengan satu pencetus. Pendekatan ini menyediakan penyelesaian yang lebih cekap dan diperkemas untuk menjejak kejadian perkataan.
Atas ialah kandungan terperinci Cara Cekap Menjejaki Kejadian Perkataan dengan Pencetus MySQL: Penyelesaian Pencetus Tunggal untuk Sisipan dan Kemas Kini Acara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!