MySQL テーブルを更新するための条件付きトリガーを見つけようとしています。問題は、入力されているデータがすでに存在していたデータと同じ場合でも、更新トリガーが起動することです。したがって、row:value がこの plus_votes:2 のように設定された列がある場合、UPDATE votes SET plus_votes = 2;
実際には何も変更されていないにもかかわらず更新すると、UPDATE トリガーは引き続き起動されます。このすべてを防ぐために、このようにトリガーに条件節を追加したいと思います
BEGIN
IF NEW.vote_value <> OLD.vote_value THEN
UPDATE my_other_table
SET plus_votes =
CASE NEW.vote_value WHEN '1'
THEN plus_votes + 1
ELSE plus_votes
END,
minus_votes =
CASE NEW.vote_value WHEN '1'
THEN minus_votes
ELSE minus_votes +1
END
WHERE my_other_table.id=NEW.votes_join_id;
END
終わり
問題の後半は、IF ステートメント内に CASE 条件があることです。誰かがこの問題を手伝って、TRIGGER 内でネストされた条件を実行する方法を示すことができますか?
とても有難い