Vous ne pouvez pas mettre à jour les lignes du tableau dans un après déclencheur de mise à jour.
Peut-être que vous voulez quelque chose comme ça :
CREATE TRIGGER `records_integrity` BEFORE UPDATE
ON `records`
FOR EACH ROW
SET NEW.epc=IFNULL(new.earnings/new.clicks, 0);
MODIFIER :
Dans un déclencheur, vous avez accès à OLD
et NEW
. OLD
sont les anciennes valeurs de l'enregistrement et NEW
sont les nouvelles valeurs. Dans un avant déclencheur, le NEW
les valeurs sont ce qui est écrit dans la table, vous pouvez donc les modifier. Dans un après déclencheur, le NEW
les valeurs ont déjà été écrites, elles ne peuvent donc pas être modifiées. Je pense que la Documentation MySQL
l'explique assez bien.