In einem Datenbankszenario mit zwei Tabellen, ext_words und ext_words_count, besteht das Ziel darin, das Vorkommen von Wörtern zu verfolgen. Beim Einfügen oder Aktualisieren eines Wortes in ext_words sollte der Trigger:
Anfänglich Ansatz
Der ursprüngliche Ansatz versuchte, separate Trigger für Einfügen und Aktualisieren zu verwenden, hatte jedoch Probleme mit der Aktualisierung des Felds „word_count“.
Lösung mit bedingten Anweisungen
Um dieses Problem zu beheben, wurde ein einzelner Trigger mit bedingten Anweisungen verwendet:
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 ;
Dieser Trigger prüft, ob das Wort, das eingefügt oder aktualisiert wird, in ext_words_count vorhanden ist. Ist dies nicht der Fall, wird eine neue Zeile für dieses Wort mit der Anzahl 1 eingefügt. Wenn es vorhanden ist, wird die Anzahl um 1 erhöht.
Implementierungsdetails
Durch die Verwendung von bedingten Anweisungen im Trigger wird es Es ist möglich, sowohl Einfüge- als auch Aktualisierungsszenarien mit einem einzigen Trigger abzuwickeln. Dieser Ansatz bietet eine effizientere und optimierte Lösung für die Verfolgung des Vorkommens von Wörtern.
Das obige ist der detaillierte Inhalt vonWie kann man Wortvorkommen mit MySQL-Triggern effizient verfolgen: Eine einzige Triggerlösung für Einfüge- und Aktualisierungsereignisse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!