objaw jest to, że uruchamiasz UPDATE
(dla wszystkich wierszy) wewnątrz INSERT
wyzwalacz - obaj modyfikują tabelę, co jest niedozwolone.
To powiedziawszy, jeśli poprawnie odgadnę intencję twojego wyzwalacza, nie chcesz aktualizować wszystkich wiersze, ale tylko nowo wstawiony wiersz. Możesz to łatwo osiągnąć dzięki
CREATE TRIGGER sum
BEFORE INSERT
ON news
FOR EACH ROW
SET NEW.sum = (NEW.int_views + NEW.ext_views)/NEW.pageviews
Pamiętaj, że to jest BEFORE INSERT
wyzwalacz, ponieważ chcesz zmienić wiersz, zanim zostanie zapisany do tabeli.