mySql insert trigger后,通过ID求和一个值并更新另一个table

mySql after insert trigger, sum up a value by ID and update another table

我有两个 table,Entries 和 mountPanel。我想要做的是在 mountPanels 中插入一条记录时,通过插入记录的 ID 总结 table 中的面板,并用该总和更新条目 table(匹配相同ID)。

当我尝试下面的 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