後のテーブルの行を更新することはできません トリガーを更新します。
おそらくあなたはこのようなものが欲しいでしょう:
CREATE TRIGGER `records_integrity` BEFORE UPDATE
ON `records`
FOR EACH ROW
SET NEW.epc=IFNULL(new.earnings/new.clicks, 0);
編集:
トリガー内では、OLDにアクセスできます およびNEW 。 OLD レコード内の古い値であり、NEW 新しい値です。 前 トリガー、NEW 値はテーブルに書き込まれるものなので、変更できます。 後 トリガー、NEW 値はすでに書き込まれているため、変更できません。 MySQLドキュメント
だと思います これをかなりよく説明しています。