0

在创建博客时,我决定使用触发器是一种方便的方式来添加和删除帖子,同时在类别表中维护一个计数器。这是我在类别表中递增和递减计数器的两个触发器:

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中有什么东西可以让我在触发器中回滚吗?

4

1 回答 1

0

在触发器中完成的任何更改都将与触发触发器的事务一起回滚(或提交)(假设您确实对表使用 InnoDB)。

于 2012-07-12T19:44:31.717 回答