Rumah > pangkalan data > tutorial mysql > Cara Cekap Menjejaki Kejadian Perkataan dengan Pencetus MySQL: Penyelesaian Pencetus Tunggal untuk Sisipan dan Kemas Kini Acara?

Cara Cekap Menjejaki Kejadian Perkataan dengan Pencetus MySQL: Penyelesaian Pencetus Tunggal untuk Sisipan dan Kemas Kini Acara?

DDD
Lepaskan: 2024-11-16 12:37:02
asal
587 orang telah melayarinya

How to Efficiently Track Word Occurrences with MySQL Triggers: A Single Trigger Solution for Insert and Update Events?

MySQL Triggers for Insert and Update Events

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:

  • Naikkan kiraan untuk perkataan yang sepadan dalam ext_words_count.
  • Jika perkataan itu tidak wujud dalam ext_words_count, masukkannya dan tetapkan kiraan kepada 1.

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 ;
Salin selepas log masuk

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

  • Klausa AFTER INSERT mengaktifkan pencetus selepas memasukkan ke dalam ext_words.
  • Pernyataan IF...ELSE secara bersyarat melaksanakan tindakan yang sesuai berdasarkan sama ada perkataan itu sudah wujud.
  • NEW.word merujuk kepada perkataan yang disisipkan atau dikemas kini.

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan