gpt4 book ai didi

mysql - mysql自动更新列

转载 作者:行者123 更新时间:2023-11-29 10:34:57 25 4
gpt4 key购买 nike

目前我正在为我的下一个项目构建数据库,但是我的数据库包括讨论、帖子和一些其他表格

讨论表

id | user_id | title | comments_count | replies_count

帖子表

id | user_id | content | type

帖子表中输入的内容可以是评论、回复讨论我希望讨论表中的 comments_count 列能够自动引用并自动选择具有评论类型的帖子数,并且我希望对replies_count 进行同样的操作。

如果这是不可能的,可以帮助我使用触发器或事件自动更新评论和回复计数列

希望你能帮助我

谢谢:)

最佳答案

[已编辑]

假设您有以下架构:

CREATE TABLE discussions(id INT,user_id INT, title VARCHAR(50), comments_count INT, replies_count INT);
CREATE TABLE posts(id INT,user_id INT, content VARCHAR(50), type VARCHAR(50));

表中的数据如下:

INSERT INTO discussions VALUES
(1,1,"test1",0,0),
(2,2,"test2",0,0);

这个触发器可能会达到你想要的效果

DELIMITER $

CREATE TRIGGER update_comments_count_trigger
AFTER INSERT ON posts
FOR EACH ROW
BEGIN
UPDATE discussions d
SET d.comments_count = (SELECT count(*) from posts where user_id = NEW.user_id and type="comment");

UPDATE discussions d
SET d.replies_count = (SELECT count(*) from posts where user_id = NEW.user_id and type="reply");


END

因此,当您将值插入到 posts 表中时,例如:

INSERT INTO posts VALUES 
(1,1,'content1','comment'),
(1,2,'content2','comment'),
(1,2,'reply1','reply');

comments_count 和replies_count 应该更新。

关于mysql - mysql自动更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46606556/

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