gpt4 book ai didi

mysql - SQL 触发器 - 使用 sum(tableB.col) WHERE tableA.userID = tableB.userID 更新表 A

转载 作者:行者123 更新时间:2023-11-29 19:13:12 26 4
gpt4 key购买 nike

我是一名刚学数据库的学生...

我有两张 table 。用户和行程。

每当将新的行程添加到数据库时,我希望它触发“totalMiles”列中用户表的更新。我希望它采用 Trip.userID 并仅更改与 Trip.userID 条目具有相同 User.userID 的用户的“totalMiles”列中的值。

我希望它从“tripMiles”中获取总和,其中 Trip.userID = User.userID。 userID 是 User 表中 Trip 表中的外键。

现在我只有:

CREATE DEFINER='root'@'localhost'TRIGGER 'DATABASE'.'Trip_AFTER_INSERT' 
AFTER INSERT ON 'Trip' FOR EACH ROW
BEGIN
UPDATE User
SET totalMiles=sum(tripMiles)
WHERE Trip.userID = User.userID;
END

我收到的错误是“‘where 子句’中的未知列‘Trip.userID’。

我用谷歌搜索并搜索了这里的几篇文章,但我没有真正找到任何东西。

最佳答案

只需将 where 子句中的“User.userID”更改为“NEW.userID”

"new"对象表示您添加的新 TRIP...

类似这样的事情:

CREATE TRIGGER 'Trip_AFTER_INSERT'
AFTER INSERT ON 'Trip' FOR EACH ROW
BEGIN
UPDATE User
SET totalMiles=sum(tripMiles)
WHERE User.userID = NEW.userID;
END

如果您需要更多信息,请参阅此处的文档:

https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html

这里

How to program a MySQL trigger to insert row into another table?

关于mysql - SQL 触发器 - 使用 sum(tableB.col) WHERE tableA.userID = tableB.userID 更新表 A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42916370/

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