ブログを作成しているときに、トリガーを使用すると、カテゴリテーブル内にカウンターを維持しながら、投稿を追加および削除するのに便利な方法であると判断しました。カテゴリテーブルのカウンタをインクリメントおよびデクリメントするための2つのトリガーは次のとおりです。
delimiter |
CREATE TRIGGER increment_category_count AFTER INSERT ON posts
FOR EACH ROW BEGIN
UPDATE categories SET count = count + 1 WHERE id = NEW.category_id;
END;
|
delimiter ;
delimiter |
CREATE TRIGGER decrement_category_count AFTER DELETE on posts
FOR EACH ROW BEGIN
UPDATE categories SET count = count - 1 WHERE id = OLD.category_id;
END;
|
delimiter ;
投稿の挿入または削除中に問題が発生すると、カウンターが不正確になるのではないかと心配しています。何かがうまくいかない場合にトリガーでロールバックを実行できるようにするMySQLに何かがありますか?