Příznak je, že spouštíte UPDATE
(pro všechny řádky) uvnitř INSERT
trigger – obě modifikují tabulku, což není povoleno.
To znamená, že pokud správně odhadnu záměr vašeho spouštěče, nechcete aktualizovat vše řádky, ale pouze nově vložený řádek. Můžete toho snadno dosáhnout pomocí
CREATE TRIGGER sum
BEFORE INSERT
ON news
FOR EACH ROW
SET NEW.sum = (NEW.int_views + NEW.ext_views)/NEW.pageviews
Pamatujte, že toto je BEFORE INSERT
trigger, protože chcete změnit řádek před jeho zapsáním do tabulky.