2 つのテーブル ext_words と ext_words_count が関係するデータベース シナリオの目標は、単語の出現を追跡することです。 ext_words 内の単語の挿入または更新時に、トリガーは以下を行う必要があります。
初期アプローチ
最初のアプローチでは、挿入と更新に別個のトリガーを使用しようとしましたが、word_count の更新で問題が発生しました。
条件付きステートメントによる解決策
これを解決するには、条件付きステートメントを組み込んだ単一のトリガーが使用されました。
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 ;
このトリガーは、次のことを確認します。挿入または更新される単語は ext_words_count に存在します。存在しない場合は、カウント 1 でその単語の新しい行を挿入します。存在する場合は、カウントを 1 ずつ増やします。
実装の詳細
トリガーで条件文を利用することで、単一のトリガーで挿入と更新の両方のシナリオを処理できます。このアプローチは、単語の出現を追跡するためのより効率的かつ合理化されたソリューションを提供します。
以上がMySQL トリガーを使用して単語の出現を効率的に追跡する方法: 挿入イベントと更新イベントの単一トリガー ソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。