Bạn không thể cập nhật các hàng trong bảng trong sau cập nhật trình kích hoạt.
Có lẽ bạn muốn một cái gì đó như thế này:
CREATE TRIGGER `records_integrity` BEFORE UPDATE
ON `records`
FOR EACH ROW
SET NEW.epc=IFNULL(new.earnings/new.clicks, 0);
CHỈNH SỬA:
Bên trong trình kích hoạt, bạn có quyền truy cập vào OLD và NEW . OLD là các giá trị cũ trong bản ghi và NEW là các giá trị mới. Trong một trước đó kích hoạt, NEW giá trị là những gì được ghi vào bảng, vì vậy bạn có thể sửa đổi chúng. Trong một sau kích hoạt, NEW các giá trị đã được ghi sẵn, vì vậy chúng không thể được sửa đổi. Tôi nghĩ rằng tài liệu MySQL
giải thích điều này khá tốt.