如何在phpMyAdmin中创建INSERT后触发器以更新另一张表的字段
MySQL触发器报错修复方案
现有代码存在的问题
- 触发表名错误:你实际的点赞记录表名为
userlikes,触发器定义中误写为user_likes,导致触发器绑定到不存在的表,无法触发执行 - 字段名不匹配:
users表的点赞计数字段为count_likes,更新语句中错写为likes_count,执行时会报字段不存在的错误 - 新行引用方式错误:行级触发器中要获取刚插入的记录字段值,需要使用
NEW关键字指代新插入的行,不能直接通过表名user_likes引用字段
修正后的触发器代码
CREATE TRIGGER `update_count_likes` AFTER INSERT ON `userlikes` FOR EACH ROW UPDATE users SET users.count_likes = users.count_likes - 1 WHERE users.id = NEW.give_like_id;
注:如果业务逻辑是要给收到点赞的用户调整计数,只需要把WHERE条件里的
NEW.give_like_id换成NEW.receive_like_id即可。
内容的提问来源于stack exchange,提问作者david
相关产品推荐
相关产品推荐

