Symtomet är att du kör en UPDATE
(för alla rader) inuti en INSERT
trigger - båda ändrar tabellen, vilket inte är tillåtet.
Som sagt, om jag gissar avsikten med din utlösare korrekt, vill du inte uppdatera alla rader, men bara den nyinfogade raden. Det kan du enkelt uppnå med
CREATE TRIGGER sum
BEFORE INSERT
ON news
FOR EACH ROW
SET NEW.sum = (NEW.int_views + NEW.ext_views)/NEW.pageviews
Tänk på att detta är en BEFORE INSERT
trigger, eftersom du vill ändra raden innan den skrivs till tabellen.