Maison > base de données > tutoriel mysql > Comment suivre efficacement les occurrences de mots avec les déclencheurs MySQL : une solution à déclencheur unique pour les événements d'insertion et de mise à jour ?

Comment suivre efficacement les occurrences de mots avec les déclencheurs MySQL : une solution à déclencheur unique pour les événements d'insertion et de mise à jour ?

DDD
Libérer: 2024-11-16 12:37:02
original
587 Les gens l'ont consulté

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

Déclencheurs MySQL pour les événements d'insertion et de mise à jour

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 :

  • Incrémenter le nombre du mot correspondant dans ext_words_count.
  • Si le mot n'existe pas dans ext_words_count, insérez-le et réglez le décompte sur 1.

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 ;
Copier après la connexion

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

  • La clause AFTER INSERT active le déclencheur après une insertion dans ext_words.
  • L'instruction IF...ELSE exécute conditionnellement l'action appropriée selon que le mot existe déjà.
  • NEW.word fait référence au mot en cours d'insertion ou de mise à jour.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal