Das Symptom ist, dass Sie ein UPDATE
ausführen (für alle Zeilen) innerhalb eines INSERT
trigger - beide modifizieren die Tabelle, was nicht erlaubt ist.
Das heißt, wenn ich die Absicht Ihres Auslösers richtig errate, möchten Sie nicht alle aktualisieren Zeilen, sondern nur die neu eingefügte Zeile. Das erreichen Sie ganz einfach mit
CREATE TRIGGER sum
BEFORE INSERT
ON news
FOR EACH ROW
SET NEW.sum = (NEW.int_views + NEW.ext_views)/NEW.pageviews
Beachten Sie, dass dies ein BEFORE INSERT
ist auslösen, da Sie die Zeile ändern möchten, bevor sie in die Tabelle geschrieben wird.