Du kan inte uppdatera rader i tabellen i ett efter uppdateringsutlösare.
Du kanske vill ha något sånt här:
CREATE TRIGGER `records_integrity` BEFORE UPDATE
ON `records`
FOR EACH ROW
SET NEW.epc=IFNULL(new.earnings/new.clicks, 0);
EDIT:
Inuti en trigger har du tillgång till OLD
och NEW
. OLD
är de gamla värdena i posten och NEW
är de nya värderingarna. I ett före trigger, NEW
värden är det som skrivs till tabellen, så du kan ändra dem. I ett efter trigger, NEW
värden har redan skrivits, så de kan inte ändras. Jag tror att MySQL-dokumentationen
förklarar detta ganska bra.