後のテーブルの行を更新することはできません トリガーを更新します。
おそらくあなたはこのようなものが欲しいでしょう:
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ドキュメント
だと思います これをかなりよく説明しています。