我有两个表,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更新特定行。
答案 0 :(得分:0)
您的更新语句没有where子句,所以当然它正在更新每一行。此外,您的陈述似乎没有正确使用new
。
试试这个:
UPDATE Entries SET
panels = (
SELECT SUM(panels)
FROM mountPanels
WHERE EntryID = new.EntryID)
WHERE EntryID = new.EntryID