如何解决MYSQL触发器-使用WHERE条件更新特定行
我有一个“ minion”表,其中包含有关用户的minion的信息。 最近,我想到了 boosters ,这样,用户小兵只要获得一个,就能更快地工作。
我做了一个简单的触发器来计算用户有多少助推器:
CREATE TRIGGER `checkBoosters` AFTER UPDATE ON `minion`
FOR EACH ROW UPDATE users
INNER JOIN minion ON minion.userID = users.id
SET users.booster = NEW.booster15 + NEW.booster30 + NEW.booster45 + NEW.booster60
WHERE users.id = minion.userID
但是我的问题是,如果您更改booster15
表中的minion
值(针对特定的 userID ),那么拥有小兵的每个人都会获得users
表中1个助推器的触发来进行计算
我注意到触发器有FOR EACH ROW UPDATE users
,所以我猜这是引起问题的原因吗?还有其他选择可以使该触发器起作用吗?
解决方法
好的,所以我知道了。
我唯一改变的是条件,它运行良好!
WHERE users.id = minion.userID -> WHERE users.id = NEW.userID
我希望这可以帮助遇到与我相同的问题的人! :)
祝您编程愉快!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。