Nie możesz zaktualizować wierszy w tabeli w po aktualizacja wyzwalacza.
Być może chcesz coś takiego:
CREATE TRIGGER `records_integrity` BEFORE UPDATE
ON `records`
FOR EACH ROW
SET NEW.epc=IFNULL(new.earnings/new.clicks, 0);
EDYCJA:
Wewnątrz wyzwalacza masz dostęp do OLD
i NEW
. OLD
to stare wartości w rekordzie i NEW
są nowe wartości. W przed wyzwalacz, NEW
wartości są zapisywane w tabeli, więc możesz je modyfikować. W po wyzwalacz, NEW
wartości zostały już zapisane, więc nie można ich modyfikować. Myślę, że dokumentacja MySQL
wyjaśnia to całkiem dobrze.