Dans un scénario de base de données impliquant deux tables, ext_words et ext_words_count, l'objectif est de suivre les occurrences de mots. Lors de l'insertion ou de la mise à jour d'un mot dans ext_words, le déclencheur doit :
Initial Approche
L'approche initiale tentait d'utiliser des déclencheurs distincts pour l'insertion et la mise à jour, mais rencontrait des problèmes lors de la mise à jour du champ word_count.
Solution avec des instructions conditionnelles
Pour résoudre ce problème, un seul déclencheur intégrant des instructions conditionnelles a été utilisé :
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 ;
Ce déclencheur vérifie si le mot en cours d'insertion ou de mise à jour existe dans ext_words_count. Si ce n'est pas le cas, il insère une nouvelle ligne pour ce mot avec un compte de 1. S'il existe, il incrémente le compte de 1.
Détails de mise en œuvre
En utilisant des instructions conditionnelles dans le déclencheur, il est Il est possible de gérer à la fois les scénarios d'insertion et de mise à jour avec un seul déclencheur. Cette approche fournit une solution plus efficace et rationalisée pour suivre les occurrences de mots.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!