だから私はこのような2つのテーブルを持っています...
ext_words
-------------
| id | word |
-------------
| 1 | this |
-------------
| 2 | that |
-------------
| 3 | this |
-------------
ext_words_count
---------------------
| id | word | count |
---------------------
| 1 | this | 2 |
---------------------
| 2 | that | 1 |
---------------------
次のトリガーを作成しようとしています。
- 更新
ext_words_count.count
時ext_words.word
に更新します。
さらに事態を複雑にするには、
- が更新されたときに
ext_words.word
存在しない場合は、挿入して1に設定したいと思います。ext_words_count
ext_words
ext_words_count
count
DELIMITER $$
CREATE TRIGGER update_count
AFTER UPDATE ON ext_words
FOR EACH ROW
BEGIN
UPDATE ext_words_count
SET word_count = word_count + 1
WHERE word = NEW.word;
END;
$$
DELIMITER ;
アドバイスや指示は大歓迎です。または、私が見落としている別の方法かもしれません。いつものように、事前に感謝します!
更新:
MySQL の条件ステートメントに慣れていないため、INSERT 用と UPDATE 用の 2 つのトリガーを使用することにしました。
DELIMITER $$
CREATE TRIGGER insert_word AFTER INSERT ON ext_words
FOR EACH ROW
BEGIN
INSERT IGNORE INTO ext_words_count (word) VALUES (NEW.word);
END;
$$
DELIMITER ;
と
DELIMITER $$
CREATE TRIGGER update_word AFTER UPDATE ON ext_words
FOR EACH ROW
BEGIN
UPDATE ext_words_count
SET word_count = word_count + 1
WHERE word = NEW.word;
END;
$$
DELIMITER ;
INSERT クエリはうまく機能していますが、UPDATE クエリは更新されていませんword_count
。更新クエリで見逃したものはありますか..?