我正在尝试设置一个触发器,以便在插入第一个表后将总和插入第二个表中。

这些表是:


第一表名称:喜欢
字段:feedid
第二个表名称:like_count
栏位:总计,feedid


likes表上插入后,我需要检查feedid在表like_count中是否存在。如果不是,则仅用total1插入。如果确实存在,我需要更新like_count.total以加1,其中likes.feedid = like_count.feedid

最佳答案

您可以使用MySQL INSERT ... ON DUPLICATE KEY语法简化触发器的逻辑。

为此,feedid必须是表likes_count中的唯一列(它是该列的主键,或者您需要在其上创建UNIQUE约束)。然后:

DELIMITER //
CREATE TRIGGER update_likes_count
AFTER INSERT ON likes FOR EACH ROW
BEGIN
    INSERT INTO likes_count (feed_id, total) VALUES (NEW.feedid, 1)
    ON DUPLICATE KEY UPDATE total = total + 1;
END;
//
DELIMITER;

关于mysql - 创建MySQL触发器插入第二个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58139930/

10-09 17:44