Một hàm hoặc trình kích hoạt được lưu trữ không thể sửa đổi một bảng đã được sử dụng (để đọc hoặc ghi) bởi câu lệnh đã gọi hàm hoặc trình kích hoạt.
from: Hạn chế chương trình được lưu trữ .
Nói chung với trình kích hoạt được kích hoạt khi chèn, nếu bạn muốn thay đổi giá trị đang được chèn, bạn thực hiện kích hoạt thuộc loại BEFORE INSERT
và thay đổi các giá trị trong NEW
cũng nhận thấy rằng câu lệnh sau đây không phải là điều bạn muốn.
update pos_table set PTS=((NEW.won_games*2)+(NEW.tie_games*1));
Nó cập nhật toàn bộ bảng trong khi tôi nghĩ bạn chỉ đang cố gắng cập nhật một hàng riêng biệt. Dù sao, đây là một phép tính đơn giản nên bạn không thực sự cần phải lưu trữ cột này. Bạn có thể dễ dàng tính toán giá trị tại thời điểm hiển thị và làm cho mã của bạn đơn giản hơn rất nhiều + tránh sự cố với trình kích hoạt.