我有两个表,Entries 和 mountPanels。我想要做的是,当在 mountPanels 中插入记录时,通过插入记录的 ID 对该表中的面板进行汇总,并用该总和(与相同 ID 匹配)更新 Entries 表。
当我尝试以下 AFTER INSERT 触发器时:
UPDATE Entries SET panels = (SELECT SUM(panels) FROM mountPanels WHERE Entries.EntryID = new.EntryID)
它总结了一切,但是当我尝试时
UPDATE Entries SET panels = (SELECT SUM(panels) FROM mountPanels WHERE Entries.EntryID = mountPanels.EntryID)
它通过 ID 正确总结所有内容,但更新每一行。我只是希望它使用最后输入的 ID 更新特定行。
最佳答案
您的更新语句没有 where 子句,因此它当然会更新每一行。另外,您的语句似乎没有正确使用 new
。
试试这个:
UPDATE Entries SET
panels = (
SELECT SUM(panels)
FROM mountPanels
WHERE EntryID = new.EntryID)
WHERE EntryID = new.EntryID
关于mySql插入触发器后,按ID求和一个值并更新另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28522773/