我有两个表,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更新特定行。
最佳答案
您的update语句没有where子句,因此当然会更新每一行。另外,您的陈述似乎没有正确使用new
。
尝试这个:
UPDATE Entries SET
panels = (
SELECT SUM(panels)
FROM mountPanels
WHERE EntryID = new.EntryID)
WHERE EntryID = new.EntryID
关于mysql - 插入触发器后,使用mySql,按ID汇总一个值并更新另一个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28522773/