gpt4 book ai didi

mysql - 在 MySql 触发器中,如何将属性设置为原始值 +1

转载 作者:行者123 更新时间:2023-11-30 23:47:23 25 4
gpt4 key购买 nike

delimiter |
create trigger createComment
after insert on comment
for each row
begin
update commentCount
set comment_count = comment_count+1
where user_id in (select user_id from blogList where blog_id = new.blog_id);
end;
| delimiter ;

我这样试过,但是comment_count的值没有改变。谢谢!

最佳答案

这是我的建议:

delimiter |
create trigger createComment
after insert on comment
for each row
begin
update commentCount cc
set comment_count = coalesce(comment_count, 0) + 1
where cc.user_id in (select bl.user_id from blogList bl where bl.blog_id = new.blog_id);
end;
|
delimiter ;

但是,这与您的代码非常相似。如果没有更新任何内容,则 blogList 表可能有问题,或者用户可能不在 CommentCount 表中。对于后者,使用:

begin
insert into commentCount(user_id, comment_count)
select user_id, 1
from bloglist bl
where bl.blog_id = new.blog_id
on duplicate key update comment_count = comment_count + 1;
end;

确保 commentCount(user_id) 是表中的主键或唯一键。

关于mysql - 在 MySql 触发器中,如何将属性设置为原始值 +1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30280836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com