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.