Triệu chứng nghĩa là bạn đang chạy UPDATE
(cho tất cả các hàng) bên trong INSERT
kích hoạt - cả hai đều sửa đổi bảng, điều này không được phép.
Điều đó có nghĩa là, nếu tôi đoán chính xác ý định của trình kích hoạt của bạn, bạn không muốn cập nhật tất cả hàng, nhưng chỉ hàng mới được chèn. Bạn có thể đạt được điều đó dễ dàng với
CREATE TRIGGER sum
BEFORE INSERT
ON news
FOR EACH ROW
SET NEW.sum = (NEW.int_views + NEW.ext_views)/NEW.pageviews
Lưu ý rằng đây là BEFORE INSERT
kích hoạt, khi bạn muốn thay đổi hàng trước khi nó được ghi vào bảng.