我正在尝试设置一个触发器,以便在插入第一个表后将总和插入第二个表中。
这些表是:
第一表名称:喜欢
字段:feedid
第二个表名称:like_count
栏位:总计,feedid
在likes
表上插入后,我需要检查feedid
在表like_count
中是否存在。如果不是,则仅用total
的1
插入。如果确实存在,我需要更新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/