使用MySQL 觸發器處理插入和更新事件
解決在插入或更新時更新相關表(「ext_words_count」)的需要更新主表(「ext_words」),MySQL 觸發器可以
理解問題
目標是建立一個執行以下操作的觸發器:
之前的嘗試和條件語句
嘗試提供的觸發器使用以下命令更新「word_count」:
UPDATE ext_words_count SET word_count = word_count + 1 WHERE word = NEW.word;
但是,此查詢只更新現有記錄,無法處理插入。
為了解決這個問題,可以在觸發器中使用條件語句。例如,以下檢查「ext_words_count」中是否存在記錄:
IF NOT EXISTS (SELECT 1 FROM ext_words_count WHERE word = NEW.word)
基於此條件,觸發器可以根據需要執行插入或更新操作。
插入和更新的單一觸發器
使用條件語句,單一觸發器可以建立來處理插入和更新事件:
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
插入與更新
現在,在插入或更新「ext_words」時,此觸發器可確保「 ext_words_count」會根據需要更新或插入。測試確認這兩種情況均已正確處理。
以上是如何使用 MySQL 觸發器在插入或更新事件時更新相關表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!