插入触发器后的mySql,按ID汇总值并更新另一个表

时间:2015-02-15 03:40:31

标签: mysql triggers

我有两个表,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更新特定行。

1 个答案:

答案 0 :(得分:0)

您的更新语句没有where子句,所以当然它正在更新每一行。此外,您的陈述似乎没有正确使用new

试试这个:

UPDATE Entries SET
panels = (
    SELECT SUM(panels)
    FROM mountPanels
    WHERE EntryID = new.EntryID)
WHERE EntryID = new.EntryID