Nhìn vào trình kích hoạt:
UPDATE Orders Set Paid =(Select SUM(Amount) From Payments AS p Where p.OrderID = Orders.ID),PayMethod =new.PayMethod WHere Orders.id = new.OrderID;
MySQL không chấp nhận khoảng trắng giữa tên hàm và dấu ngoặc đơn (trừ khi bạn đã đặt SQL_MODE =IGNORE_SPACE nhưng điều đó mang lại cho bạn các tác dụng phụ không mong muốn khác)
Bạn có thể kiểm tra cài đặt SQL_MODE bằng cách chạy:
SHOW GLOBAL VARIABLES LIKE 'SQL_MODE';
Tài liệu MySQL về điều này: liên kết
Một số ví dụ:
mysql> select sum(5);
+--------+
| sum(5) |
+--------+
| 5 |
+--------+
1 row in set (0.00 sec)
mysql> select sum (5);
ERROR 1305 (42000): FUNCTION sum does not exist
Giải pháp:Loại bỏ khoảng trống
UPDATE Orders Set Paid =(Select SUM(Amount) From Payments AS p Where p.OrderID = Orders.ID),PayMethod =new.PayMethod WHere Orders.id = new.OrderID;